Diff of the two buildlogs: -- --- b1/build.log 2025-07-11 09:01:59.891802115 +0000 +++ b2/build.log 2025-07-11 09:19:50.926913689 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Aug 13 03:17:27 -12 2026 -I: pbuilder-time-stamp: 1786634247 +I: Current time: Fri Jul 11 23:02:49 +14 2025 +I: pbuilder-time-stamp: 1752224569 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -104,52 +104,84 @@ dpkg-source: info: applying 0081-Revert-Update-7zip-wrapper-code-for-removal-of-read-.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1144975/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jul 11 09:03 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='bc11a5ade0944f8c8b7095c6b893fda0' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1144975' - PS1='# ' - PS2='> ' + INVOCATION_ID=d37fb38d8a4143d89a46f4a70267c1ac + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2271142 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.cZfbswRC/pbuilderrc_qs3m --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.cZfbswRC/b1 --logfile b1/build.log calibre_8.5.0+ds-1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.cZfbswRC/pbuilderrc_yE9p --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.cZfbswRC/b2 --logfile b2/build.log calibre_8.5.0+ds-1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1144975/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -936,7 +968,7 @@ Get: 582 http://deb.debian.org/debian trixie/main arm64 qt6-wayland arm64 6.8.2-4 [170 kB] Get: 583 http://deb.debian.org/debian trixie/main arm64 webp arm64 1.5.0-0.1 [196 kB] Get: 584 http://deb.debian.org/debian trixie/main arm64 xdg-utils all 1.2.1-2 [75.8 kB] -Fetched 386 MB in 3s (142 MB/s) +Fetched 386 MB in 5s (81.5 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19964 files and directories currently installed.) @@ -2798,8 +2830,8 @@ Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Aug 13 15:18:40 UTC 2026. -Universal Time is now: Thu Aug 13 15:18:40 UTC 2026. +Local time is now: Fri Jul 11 09:06:07 UTC 2025. +Universal Time is now: Fri Jul 11 09:06:07 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libxcb-present0:arm64 (1.17.0-2+b1) ... @@ -3313,7 +3345,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/calibre-8.5.0+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../calibre_8.5.0+ds-1_source.changes +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/calibre-8.5.0+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../calibre_8.5.0+ds-1_source.changes dpkg-buildpackage: info: source package calibre dpkg-buildpackage: info: source version 8.5.0+ds-1 dpkg-buildpackage: info: source distribution unstable @@ -3384,52 +3420,52 @@ g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++17 -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/sqlite_extension.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/sqlite_extension/sqlite_extension.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/compressor.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/compressor.o + +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/lzxmodule.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/lzxmodule.o + gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/lzxd.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/lzxd.o gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/lzxc.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/lzxc.o gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/lzc.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/lzc.o -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/compressor.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/compressor.o - -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/lzx/lzxmodule.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/lzx/lzxmodule.o - -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -I/usr/include/libpng16 -I/usr/include/freetype2 -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/fonts/freetype.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/freetype/freetype.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -I/usr/include/freetype2 -I/usr/include/libpng16 -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/fonts/freetype.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/freetype/freetype.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/msdes -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/msdes/des.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/msdes/des.o - gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/msdes -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/msdes/msdesmodule.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/msdes/msdesmodule.o +gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -I/build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/msdes -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/msdes/des.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/msdes/des.o + gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/ebooks/compression/palmdoc.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/cPalmdoc/palmdoc.o gcc -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC= __attribute__ ((visibility ("default"))) PyObject*' -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/ebooks/djvu/bzzdecoder.c -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/bzzdec/bzzdecoder.o -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/output.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/output.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/impose.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/impose.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/fonts.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/fonts.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/output.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/output.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/outlines.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/outlines.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/images.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/images.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/impose.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/impose.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/fonts.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/fonts.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/images.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/images.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/doc.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/doc.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/doc.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/doc.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/utils.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/utils.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/utils.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/utils.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/outline.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/outline.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/podofo.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/podofo.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/outlines.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/outlines.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ -g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include -I/usr/include/podofo -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/outline.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/outline.o +g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -I/usr/include/podofo -I/usr/include -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/utils/podofo/podofo.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/podofo/podofo.o cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ g++ -Wall -DNDEBUG -fno-strict-aliasing -pipe -O3 -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fvisibility=hidden -pthread -I/usr/include/python3.13 '-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) PyObject*' -std=c++11 -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/html_as_json.cpp -o /build/reproducible-path/calibre-8.5.0+ds/build/objects/html_as_json/html_as_json.o @@ -3638,8 +3674,8 @@ -- Performing Test HAVE_STDATOMIC -- Performing Test HAVE_STDATOMIC - Success -- Found WrapAtomic: TRUE --- Configuring done (1.1s) --- Generating done (0.0s) +-- Configuring done (5.5s) +-- Generating done (0.2s) -- Build files have been written to: /build/reproducible-path/calibre-8.5.0+ds/build/headless make[2]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds/build/headless' /usr/bin/cmake -S/build/reproducible-path/calibre-8.5.0+ds/src/calibre/headless -B/build/reproducible-path/calibre-8.5.0+ds/build/headless --check-build-system CMakeFiles/Makefile.cmake 0 @@ -3687,11 +3723,11 @@ make[4]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds/build/headless' make -f CMakeFiles/headless.dir/build.make CMakeFiles/headless.dir/build make[4]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds/build/headless' -[ 33%] Building CXX object CMakeFiles/headless.dir/headless_backingstore.cpp.o +[ 33%] Building CXX object CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o +/usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o -MF CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o.d -o CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o -c /build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/mocs_compilation.cpp [ 50%] Building CXX object CMakeFiles/headless.dir/main.cpp.o -[ 66%] Building CXX object CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/main.cpp.o -MF CMakeFiles/headless.dir/main.cpp.o.d -o CMakeFiles/headless.dir/main.cpp.o -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/headless/main.cpp -/usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o -MF CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o.d -o CMakeFiles/headless.dir/headless_autogen/mocs_compilation.cpp.o -c /build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/mocs_compilation.cpp +[ 66%] Building CXX object CMakeFiles/headless.dir/headless_backingstore.cpp.o /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_backingstore.cpp.o -MF CMakeFiles/headless.dir/headless_backingstore.cpp.o.d -o CMakeFiles/headless.dir/headless_backingstore.cpp.o -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/headless/headless_backingstore.cpp [ 83%] Building CXX object CMakeFiles/headless.dir/headless_integration.cpp.o /usr/bin/c++ -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -Dheadless_EXPORTS -I/build/reproducible-path/calibre-8.5.0+ds/build/headless/headless_autogen/include -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtGui/6.8.2/QtGui -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2 -isystem /usr/include/aarch64-linux-gnu/qt6/QtCore/6.8.2/QtCore -g -O2 -ffile-prefix-map=/build/reproducible-path/calibre-8.5.0+ds=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT CMakeFiles/headless.dir/headless_integration.cpp.o -MF CMakeFiles/headless.dir/headless_integration.cpp.o.d -o CMakeFiles/headless.dir/headless_integration.cpp.o -c /build/reproducible-path/calibre-8.5.0+ds/src/calibre/headless/headless_integration.cpp @@ -3703,21 +3739,21 @@ make[3]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds/build/headless' /usr/bin/cmake -E cmake_progress_start /build/reproducible-path/calibre-8.5.0+ds/build/headless/CMakeFiles 0 make[2]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds/build/headless' -* build took 71.4 seconds +* build took 153.1 seconds python3.13 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts=/usr/share/fonts/truetype/liberation * * Running liberation_fonts * -* liberation_fonts took 0.0 seconds +* liberation_fonts took 0.9 seconds python3.13 setup.py gui * * Running gui * -No write access to /nonexistent/first-build/.config/calibre using a temporary dir instead +No write access to /nonexistent/second-build/.config/calibre using a temporary dir instead Compiling form /build/reproducible-path/calibre-8.5.0+ds/src/calibre/gui2/filename_pattern.ui Compiling form /build/reproducible-path/calibre-8.5.0+ds/src/calibre/gui2/catalog/catalog_bibtex.ui Compiling form /build/reproducible-path/calibre-8.5.0+ds/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -3816,7 +3852,7 @@ Compiled 95 forms Creating icon theme resource file Creating images.qrc -* gui took 1.1 seconds +* gui took 5.0 seconds python3.13 setup.py kakasi * @@ -3824,10 +3860,10 @@ * Generating Kanwadict -No write access to /nonexistent/first-build/.config/calibre using a temporary dir instead +No write access to /nonexistent/second-build/.config/calibre using a temporary dir instead Generating Itaijidict Generating kanadict -* kakasi took 0.5 seconds +* kakasi took 1.2 seconds make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' @@ -3850,17 +3886,17 @@ test_human_readable_output (calibre.db.cli.tests.PrintCheckLibraryResultsTest.test_human_readable_output) Basic check of the human-readable output. ... ok [0.0 s] test_prints_nothing_if_no_errors (calibre.db.cli.tests.PrintCheckLibraryResultsTest.test_prints_nothing_if_no_errors) ... ok [0.0 s] -test_import_of_all_python_modules (calibre.utils.run_tests.TestImports.test_import_of_all_python_modules) ... ok [4.1 s] -test_listener_ipc (calibre.gui2.listener.find_tests..TestIPC.test_listener_ipc) ... ok [0.7 s] -test_safe_atexit (calibre.utils.safe_atexit.find_tests..TestSafeAtexit.test_safe_atexit) ... ok [0.7 s] +test_import_of_all_python_modules (calibre.utils.run_tests.TestImports.test_import_of_all_python_modules) ... ok [11.8 s] +test_listener_ipc (calibre.gui2.listener.find_tests..TestIPC.test_listener_ipc) ... ok [1.2 s] +test_safe_atexit (calibre.utils.safe_atexit.find_tests..TestSafeAtexit.test_safe_atexit) ... ok [1.1 s] test_copying_of_trees (calibre.utils.copy_files_test.TestCopyFiles.test_copying_of_trees) ... ok [0.0 s] test_pread_all (calibre.utils.copy_files_test.TestCopyFiles.test_pread_all) ... ok [0.0 s] test_renaming_of_files (calibre.utils.copy_files_test.TestCopyFiles.test_renaming_of_files) ... ok [0.0 s] -test_live_cache (calibre.live.find_tests..LiveTest.test_live_cache) ... ok [0.0 s] +test_live_cache (calibre.live.find_tests..LiveTest.test_live_cache) ... ok [0.2 s] test_module_loading (calibre.live.find_tests..LiveTest.test_module_loading) ... ok [0.0 s] -test_add_soft_hyphens (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_add_soft_hyphens) ... ok [0.5 s] -test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.1 s] -test_locale_to_hyphen_dictionary (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_locale_to_hyphen_dictionary) ... ok [0.1 s] +test_add_soft_hyphens (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_add_soft_hyphens) ... ok [1.5 s] +test_hyphenate_html (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_hyphenate_html) ... ok [0.3 s] +test_locale_to_hyphen_dictionary (calibre.utils.hyphenation.test_hyphenation.TestHyphenation.test_locale_to_hyphen_dictionary) ... ok [0.2 s] test_viewer_cache (calibre.gui2.viewer.convert_book.find_tests..TestViewerCache.test_viewer_cache) ... ok [0.0 s] test_palmdoc_compression (calibre.ebooks.compression.palmdoc.find_tests..Test.test_palmdoc_compression) ... ok [0.0 s] test_comments_to_html (calibre.library.comments.find_tests..Test.test_comments_to_html) ... ok [0.0 s] @@ -3869,11 +3905,11 @@ test_sqp_optimized (calibre.utils.search_query_parser_test.TestSQP.test_sqp_optimized) ... ok [0.0 s] test_sqp_tokenizer (calibre.utils.search_query_parser_test.TestSQP.test_sqp_tokenizer) ... ok [0.0 s] test_sqp_unoptimized (calibre.utils.search_query_parser_test.TestSQP.test_sqp_unoptimized) ... ok [0.0 s] -test_exclusive_file_other_process_clean (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_clean) ... ok [0.2 s] -test_exclusive_file_other_process_kill (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_kill) ... ok [0.2 s] +test_exclusive_file_other_process_clean (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_clean) ... ok [0.4 s] +test_exclusive_file_other_process_kill (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_other_process_kill) ... ok [0.3 s] test_exclusive_file_same_process (calibre.utils.test_lock.IPCLockTest.test_exclusive_file_same_process) ... ok [0.1 s] -test_single_instance (calibre.utils.test_lock.IPCLockTest.test_single_instance) ... ok [1.6 s] -test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.3 s] +test_single_instance (calibre.utils.test_lock.IPCLockTest.test_single_instance) ... ok [2.5 s] +test_tdir_in_cache_dir (calibre.utils.test_lock.IPCLockTest.test_tdir_in_cache_dir) ... ok [0.4 s] test_shared_file (calibre.utils.shared_file.find_tests..SharedFileTest.test_shared_file) ... ok [0.0 s] test_author_mapper (calibre.ebooks.metadata.author_mapper.find_tests..TestAuthorMapper.test_author_mapper) ... ok [0.0 s] test_tag_mapper (calibre.ebooks.metadata.tag_mapper.find_tests..TestTagMapper.test_tag_mapper) ... ok [0.0 s] @@ -3895,12 +3931,12 @@ test_single (calibre.ebooks.metadata.test_author_sort.TestAuthorToAuthorSort.test_single) ... ok [0.0 s] test_surname_prefix (calibre.ebooks.metadata.test_author_sort.TestAuthorToAuthorSort.test_surname_prefix) ... ok [0.0 s] test_depth_first (calibre.ebooks.html.input.find_tests..TestHTMLInput.test_depth_first) ... ok [0.0 s] -test_dictionaries (calibre.spell.dictionary.find_tests..TestDictionaries.test_dictionaries) ... ok [0.4 s] +test_dictionaries (calibre.spell.dictionary.find_tests..TestDictionaries.test_dictionaries) ... ok [1.4 s] test_html_entity_replacement (calibre.ebooks.html_entities.find_tests..TestHTMLEntityReplacement.test_html_entity_replacement) ... ok [0.0 s] test_merge_annotations (calibre.gui2.viewer.annotations.find_tests..AnnotationsTest.test_merge_annotations) ... ok [0.0 s] test_lxml_unicode_parsing (calibre.utils.xml_parse.find_tests..TestXMLParse.test_lxml_unicode_parsing) ... ok [0.0 s] test_safe_xml_fromstring (calibre.utils.xml_parse.find_tests..TestXMLParse.test_safe_xml_fromstring) ... ok [0.0 s] -test_input_comment_multi (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_comment_multi) ... ok [0.0 s] +test_input_comment_multi (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_comment_multi) ... ok [0.1 s] test_input_comment_single (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_comment_single) ... ok [0.0 s] test_input_meta_multi (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_meta_multi) ... ok [0.0 s] test_input_meta_single (calibre.ebooks.metadata.html.MetadataHtmlTest.test_input_meta_single) ... ok [0.0 s] @@ -3912,26 +3948,26 @@ test_ordinal_numbers (calibre.utils.smartypants.run_tests..TestSmartypantsAllAttributes.test_ordinal_numbers) ... ok [0.0 s] test_skip_tags (calibre.utils.smartypants.run_tests..TestSmartypantsAllAttributes.test_skip_tags) ... ok [0.0 s] test_break_iterator (calibre.utils.icu_test.TestICU.test_break_iterator) -Test the break iterator ... ok [0.0 s] +Test the break iterator ... ok [0.1 s] test_change_case (calibre.utils.icu_test.TestICU.test_change_case) Test the various ways of changing the case ... ok [0.0 s] test_character_name (calibre.utils.icu_test.TestICU.test_character_name) Test character naming ... ok [0.0 s] test_collation_order (calibre.utils.icu_test.TestICU.test_collation_order) -Testing collation ordering ... ok [0.0 s] +Testing collation ordering ... ok [0.2 s] test_collation_order_for_partitioning (calibre.utils.icu_test.TestICU.test_collation_order_for_partitioning) Testing collation ordering for partitioning ... ok [0.0 s] test_contractions (calibre.utils.icu_test.TestICU.test_contractions) Test contractions ... skipped 'Skipping as this depends too much on ICU version' [0.0 s] test_find (calibre.utils.icu_test.TestICU.test_find) -Test searching for substrings ... ok [0.0 s] -test_remove_accents (calibre.utils.icu_test.TestICU.test_remove_accents) ... ok [0.0 s] +Test searching for substrings ... ok [0.1 s] +test_remove_accents (calibre.utils.icu_test.TestICU.test_remove_accents) ... ok [0.6 s] test_roundtrip (calibre.utils.icu_test.TestICU.test_roundtrip) Test roundtripping ... ok [0.0 s] test_sorting (calibre.utils.icu_test.TestICU.test_sorting) Test the various sorting APIs ... ok [0.0 s] test_split_into_sentences (calibre.utils.icu_test.TestICU.test_split_into_sentences) ... ok [0.0 s] -test_mem_leaks (calibre.utils.matcher.test..Test.test_mem_leaks) ... ok [0.3 s] +test_mem_leaks (calibre.utils.matcher.test..Test.test_mem_leaks) ... ok [0.5 s] test_non_bmp (calibre.utils.matcher.test..Test.test_non_bmp) ... ok [0.0 s] test_cfi_decode (calibre.ebooks.epub.cfi.tests.Tests.test_cfi_decode) ... ok [0.0 s] test_parsing (calibre.ebooks.epub.cfi.tests.Tests.test_parsing) ... ok [0.0 s] @@ -3979,7 +4015,7 @@ test_parse_font (tinycss.tests.fonts3.TestFonts3.test_parse_font) ... ok [0.0 s] test_parse_font_family (tinycss.tests.fonts3.TestFonts3.test_parse_font_family) Test parsing of font-family values ... ok [0.0 s] -test_decoding (tinycss.tests.decoding.TestDecoding.test_decoding) ... ok [0.0 s] +test_decoding (tinycss.tests.decoding.TestDecoding.test_decoding) ... ok [0.1 s] test_at_import (tinycss.tests.css21.TestCSS21.test_at_import) ... ok [0.0 s] test_at_media (tinycss.tests.css21.TestCSS21.test_at_media) ... ok [0.0 s] test_at_page (tinycss.tests.css21.TestCSS21.test_at_page) ... ok [0.0 s] @@ -3990,7 +4026,7 @@ test_parse_style_attr (tinycss.tests.css21.TestCSS21.test_parse_style_attr) ... ok [0.0 s] test_color_parsing (tinycss.tests.color3.TestColor3.test_color_parsing) ... ok [0.0 s] test_hsl (tinycss.tests.color3.TestColor3.test_hsl) ... ok [0.0 s] -test_against_opf2 (calibre.ebooks.metadata.opf3_test.TestOPF3.test_against_opf2) ... ok [0.0 s] +test_against_opf2 (calibre.ebooks.metadata.opf3_test.TestOPF3.test_against_opf2) ... ok [0.1 s] test_authors (calibre.ebooks.metadata.opf3_test.TestOPF3.test_authors) ... ok [0.0 s] test_book_producer (calibre.ebooks.metadata.opf3_test.TestOPF3.test_book_producer) ... ok [0.0 s] test_comments (calibre.ebooks.metadata.opf3_test.TestOPF3.test_comments) ... ok [0.0 s] @@ -4009,9 +4045,9 @@ testReading (calibre.ebooks.metadata.opf2.suite..OPFTest.testReading) ... ok [0.0 s] testSmartUpdate (calibre.ebooks.metadata.opf2.suite..OPFTest.testSmartUpdate) ... ok [0.0 s] testWriting (calibre.ebooks.metadata.opf2.suite..OPFTest.testWriting) ... ok [0.0 s] -test_epub2_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub2_covers) ... ok [0.0 s] -test_epub3_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub3_covers) ... ok [0.0 s] -test_landmarks_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_landmarks_detection) ... ok [0.0 s] +test_epub2_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub2_covers) ... ok [0.2 s] +test_epub3_covers (calibre.ebooks.oeb.polish.tests.structure.Structure.test_epub3_covers) ... ok [0.3 s] +test_landmarks_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_landmarks_detection) ... ok [0.1 s] test_mark_sentences (calibre.ebooks.oeb.polish.tests.structure.Structure.test_mark_sentences) ... ok [0.0 s] test_toc_detection (calibre.ebooks.oeb.polish.tests.structure.Structure.test_toc_detection) ... ok [0.0 s] test_conversion_parser (calibre.ebooks.oeb.polish.tests.parsing.ParsingTests.test_conversion_parser) @@ -4021,11 +4057,11 @@ test_polish_parser (calibre.ebooks.oeb.polish.tests.parsing.ParsingTests.test_polish_parser) Test parsing with the HTML5 parser used for polishing ... ok [0.0 s] test_kepubify (calibre.ebooks.oeb.polish.tests.kepubify.KepubifyTests.test_kepubify) ... Conversion options changed from defaults: - cover: '/tmp/calibre-9zgvlidm/qynbymrabpt/lt.png' - authors: 'Kovid Goyal' + language: 'en' level1_toc: '//h:h2' verbose: 2 - language: 'en' + cover: '/tmp/calibre-n3hjza7p/l9uzrk9tbpt/lt.png' + authors: 'Kovid Goyal' Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -4042,7 +4078,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-9zgvlidm/qynbymrabpt/lt.png', + 'cover': '/tmp/calibre-n3hjza7p/l9uzrk9tbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4068,7 +4104,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -4093,7 +4129,7 @@ 'no_default_epub_cover': False, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -4135,19 +4171,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-9zgvlidm/qynbymrabpt/index.html +on /tmp/calibre-n3hjza7p/l9uzrk9tbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-9zgvlidm/qynbymrabpt/index.html' + HTMLFile:0:a:'/tmp/calibre-n3hjza7p/l9uzrk9tbpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre-9zgvlidm/qynbymrabpt/marked.png with href: marked.png -Added /tmp/calibre-9zgvlidm/qynbymrabpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-9zgvlidm/qynbymrabpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-9zgvlidm/qynbymrabpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-n3hjza7p/l9uzrk9tbpt/marked.png with href: marked.png +Added /tmp/calibre-n3hjza7p/l9uzrk9tbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-n3hjza7p/l9uzrk9tbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-n3hjza7p/l9uzrk9tbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4175,12 +4211,12 @@ EPUB output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-2.epub Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-2.epub Conversion options changed from defaults: - cover: '/tmp/calibre-9zgvlidm/x9xsrxbnbpt/lt.png' + cover: '/tmp/calibre-n3hjza7p/1ztv31k2bpt/lt.png' level1_toc: '//h:h2' - epub_version: '3' - verbose: 2 authors: 'Kovid Goyal' + epub_version: '3' language: 'en' + verbose: 2 Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -4197,7 +4233,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-9zgvlidm/x9xsrxbnbpt/lt.png', + 'cover': '/tmp/calibre-n3hjza7p/1ztv31k2bpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4223,7 +4259,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -4248,7 +4284,7 @@ 'no_default_epub_cover': False, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -4290,19 +4326,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-9zgvlidm/x9xsrxbnbpt/index.html +on /tmp/calibre-n3hjza7p/1ztv31k2bpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-9zgvlidm/x9xsrxbnbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-n3hjza7p/1ztv31k2bpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre-9zgvlidm/x9xsrxbnbpt/marked.png with href: marked.png -Added /tmp/calibre-9zgvlidm/x9xsrxbnbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-9zgvlidm/x9xsrxbnbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-9zgvlidm/x9xsrxbnbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-n3hjza7p/1ztv31k2bpt/marked.png with href: marked.png +Added /tmp/calibre-n3hjza7p/1ztv31k2bpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-n3hjza7p/1ztv31k2bpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-n3hjza7p/1ztv31k2bpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4331,11 +4367,11 @@ EPUB output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-3.epub Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-True-3.epub Conversion options changed from defaults: - level1_toc: '//h:h2' + verbose: 2 authors: 'Kovid Goyal' - language: 'en' no_default_epub_cover: True - verbose: 2 + language: 'en' + level1_toc: '//h:h2' Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -4378,7 +4414,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -4403,7 +4439,7 @@ 'no_default_epub_cover': True, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -4445,19 +4481,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-9zgvlidm/52_mok1kbpt/index.html +on /tmp/calibre-n3hjza7p/1ry8u_2lbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-9zgvlidm/52_mok1kbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-n3hjza7p/1ry8u_2lbpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre-9zgvlidm/52_mok1kbpt/marked.png with href: marked.png -Added /tmp/calibre-9zgvlidm/52_mok1kbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-9zgvlidm/52_mok1kbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-9zgvlidm/52_mok1kbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-n3hjza7p/1ry8u_2lbpt/marked.png with href: marked.png +Added /tmp/calibre-n3hjza7p/1ry8u_2lbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-n3hjza7p/1ry8u_2lbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-n3hjza7p/1ry8u_2lbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4485,12 +4521,12 @@ EPUB output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-2.epub Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-2.epub Conversion options changed from defaults: - no_default_epub_cover: True - epub_version: '3' - level1_toc: '//h:h2' - authors: 'Kovid Goyal' language: 'en' + level1_toc: '//h:h2' + epub_version: '3' verbose: 2 + authors: 'Kovid Goyal' + no_default_epub_cover: True Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -4533,7 +4569,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -4558,7 +4594,7 @@ 'no_default_epub_cover': True, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -4600,19 +4636,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-9zgvlidm/7dfcjotrbpt/index.html +on /tmp/calibre-n3hjza7p/v1ttnnhwbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-9zgvlidm/7dfcjotrbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-n3hjza7p/v1ttnnhwbpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre-9zgvlidm/7dfcjotrbpt/marked.png with href: marked.png -Added /tmp/calibre-9zgvlidm/7dfcjotrbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-9zgvlidm/7dfcjotrbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-9zgvlidm/7dfcjotrbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-n3hjza7p/v1ttnnhwbpt/marked.png with href: marked.png +Added /tmp/calibre-n3hjza7p/v1ttnnhwbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-n3hjza7p/v1ttnnhwbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-n3hjza7p/v1ttnnhwbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4640,15 +4676,15 @@ Upgrading to EPUB 3... EPUB output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-3.epub Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/kepubify-False-3.epub -ok [2.0 s] +ok [5.1 s] test_kepubify_html (calibre.ebooks.oeb.polish.tests.kepubify.KepubifyTests.test_kepubify_html) ... ok [0.0 s] test_actual_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_actual_case) Test getting the actual case for files from names on case insensitive filesystems ... Conversion options changed from defaults: - verbose: 2 - language: 'en' - cover: '/tmp/calibre-9zgvlidm/8sa2cf2gbpt/lt.png' + cover: '/tmp/calibre-n3hjza7p/nlacskuubpt/lt.png' level1_toc: '//h:h2' authors: 'Kovid Goyal' + verbose: 2 + language: 'en' Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -4665,7 +4701,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-9zgvlidm/8sa2cf2gbpt/lt.png', + 'cover': '/tmp/calibre-n3hjza7p/nlacskuubpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4691,7 +4727,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -4716,7 +4752,7 @@ 'no_default_epub_cover': False, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -4758,19 +4794,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-9zgvlidm/8sa2cf2gbpt/index.html +on /tmp/calibre-n3hjza7p/nlacskuubpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-9zgvlidm/8sa2cf2gbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-n3hjza7p/nlacskuubpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre-9zgvlidm/8sa2cf2gbpt/marked.png with href: marked.png -Added /tmp/calibre-9zgvlidm/8sa2cf2gbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-9zgvlidm/8sa2cf2gbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-9zgvlidm/8sa2cf2gbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-n3hjza7p/nlacskuubpt/marked.png with href: marked.png +Added /tmp/calibre-n3hjza7p/nlacskuubpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-n3hjza7p/nlacskuubpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-n3hjza7p/nlacskuubpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4797,14 +4833,14 @@ Removing anchor from TOC href: index_split_001.html#page2 EPUB output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.epub Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.epub -ok [0.1 s] +ok [0.3 s] test_clone (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_clone) Test cloning of containers ... Conversion options changed from defaults: language: 'en' - cover: '/tmp/calibre-9zgvlidm/16r005cbbpt/lt.png' verbose: 2 - authors: 'Kovid Goyal' + cover: '/tmp/calibre-n3hjza7p/lxautnqvbpt/lt.png' level1_toc: '//h:h2' + authors: 'Kovid Goyal' Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -4821,7 +4857,7 @@ "'i')) or @class = 'chapter']", 'chapter_mark': 'pagebreak', 'comments': None, - 'cover': '/tmp/calibre-9zgvlidm/16r005cbbpt/lt.png', + 'cover': '/tmp/calibre-n3hjza7p/lxautnqvbpt/lt.png', 'debug_pipeline': None, 'dehyphenate': True, 'delete_blank_paragraphs': True, @@ -4841,7 +4877,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -4866,7 +4902,7 @@ 'no_chapters_in_toc': False, 'no_inline_navbars': False, 'no_inline_toc': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_author_sort': False, 'prefer_metadata_cover': False, @@ -4909,19 +4945,19 @@ 'verbose': 2} 1% Converting input to HTML... InputFormatPlugin: HTML Input running -on /tmp/calibre-9zgvlidm/16r005cbbpt/index.html +on /tmp/calibre-n3hjza7p/lxautnqvbpt/index.html Building file list... Found files... - HTMLFile:0:a:'/tmp/calibre-9zgvlidm/16r005cbbpt/index.html' + HTMLFile:0:a:'/tmp/calibre-n3hjza7p/lxautnqvbpt/index.html' Normalizing filename cases Rewriting HTML links Parsing index.html ... Initial parse failed, using more forgiving parsers Parsing index.html as HTML -Added /tmp/calibre-9zgvlidm/16r005cbbpt/marked.png with href: marked.png -Added /tmp/calibre-9zgvlidm/16r005cbbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf -Added /tmp/calibre-9zgvlidm/16r005cbbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf -Added /tmp/calibre-9zgvlidm/16r005cbbpt/light_wood.png with href: light_wood.png +Added /tmp/calibre-n3hjza7p/lxautnqvbpt/marked.png with href: marked.png +Added /tmp/calibre-n3hjza7p/lxautnqvbpt/LiberationMono-Regular.ttf with href: LiberationMono-Regular.ttf +Added /tmp/calibre-n3hjza7p/lxautnqvbpt/LiberationMono-Italic.ttf with href: LiberationMono-Italic.ttf +Added /tmp/calibre-n3hjza7p/lxautnqvbpt/light_wood.png with href: light_wood.png 34% Running transforms on e-book... Merging user specified metadata... Detecting structure... @@ -4950,24 +4986,24 @@ Creating indices... AZW3 output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.azw3 Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/simple.azw3 -ok [0.9 s] +ok [2.0 s] test_dir_container (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_dir_container) ... ok [0.0 s] test_file_add (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_add) -Test adding of files ... ok [0.0 s] +Test adding of files ... ok [0.1 s] test_file_removal (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_removal) -Test removal of files from the container ... ok [0.0 s] +Test removal of files from the container ... ok [0.1 s] test_file_rename (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_file_rename) -Test renaming of files ... ok [0.3 s] -test_folder_type_map_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_folder_type_map_case) ... ok [0.0 s] +Test renaming of files ... ok [1.1 s] +test_folder_type_map_case (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_folder_type_map_case) ... ok [0.1 s] test_merge_file (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_merge_file) -Test merging of files ... ok [0.1 s] +Test merging of files ... ok [0.4 s] test_split_file (calibre.ebooks.oeb.polish.tests.container.ContainerTests.test_split_file) Test splitting of files ... Conversion options changed from defaults: - verbose: 2 - authors: 'Kovid Goyal' - language: 'en' cover: '/build/reproducible-path/calibre-8.5.0+ds/resources/images/lt.png' level1_toc: '//h:h2' + authors: 'Kovid Goyal' + verbose: 2 + language: 'en' Resolved conversion options calibre version: 8.5.0 {'add_alt_text_to_img': False, @@ -5010,7 +5046,7 @@ 'format_scene_breaks': True, 'html_unwrap_factor': 0.4, 'input_encoding': None, - 'input_profile': , + 'input_profile': , 'insert_blank_line': False, 'insert_blank_line_size': 0.5, 'insert_metadata': False, @@ -5035,7 +5071,7 @@ 'no_default_epub_cover': False, 'no_inline_navbars': False, 'no_svg_cover': False, - 'output_profile': , + 'output_profile': , 'page_breaks_before': "//*[name()='h1' or name()='h2']", 'prefer_metadata_cover': False, 'preserve_cover_aspect_ratio': False, @@ -5109,7 +5145,7 @@ Removing anchor from TOC href: index.html#page1 EPUB output written to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/split.epub Output saved to /build/reproducible-path/calibre-8.5.0+ds/debian/.debhelper/generated/_source/home/.cache/calibre/polish-test/split.epub -ok [0.1 s] +ok [0.2 s] test_fallback_font_matching (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_fallback_font_matching) ... ok [0.0 s] test_font_stats (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_font_stats) ... ok [0.1 s] test_iterrules (calibre.ebooks.oeb.polish.tests.cascade.CascadeTest.test_iterrules) ... CSSImportRule: While processing imported style sheet href=../two.css: OSError('Cannot read Stylesheet.') @@ -5134,111 +5170,113 @@ test_thumbnail_cache (calibre.db.tests.utils.UtilsTest.test_thumbnail_cache) Test the operation of the thumbnail cache ... ok [0.0 s] test_author_sort_for_authors (calibre.db.tests.reading.ReadingTest.test_author_sort_for_authors) -Test getting the author sort for authors from the db ... ok [0.3 s] +Test getting the author sort for authors from the db ... ok [0.9 s] test_composites (calibre.db.tests.reading.ReadingTest.test_composites) -Test sorting and searching in composite columns ... ok [0.3 s] +Test sorting and searching in composite columns ... ok [0.6 s] test_datetime (calibre.db.tests.reading.ReadingTest.test_datetime) Test the reading of datetimes stored in the db ... ok [0.3 s] test_find_identical_books (calibre.db.tests.reading.ReadingTest.test_find_identical_books) -Test find_identical_books ... ok [0.3 s] +Test find_identical_books ... ok [0.6 s] test_get_categories (calibre.db.tests.reading.ReadingTest.test_get_categories) -Check that get_categories() returns the same data for both backends ... ok [0.3 s] +Check that get_categories() returns the same data for both backends ... ok [1.0 s] test_get_cover (calibre.db.tests.reading.ReadingTest.test_get_cover) -Test cover() returns the same data for both backends ... ok [0.3 s] +Test cover() returns the same data for both backends ... ok [0.9 s] test_get_formats (calibre.db.tests.reading.ReadingTest.test_get_formats) -Test reading ebook formats using the format() method ... ok [0.3 s] +Test reading ebook formats using the format() method ... ok [1.1 s] test_get_metadata (calibre.db.tests.reading.ReadingTest.test_get_metadata) -Test get_metadata() returns the same data for both backends ... ok [0.3 s] +Test get_metadata() returns the same data for both backends ... ok [0.9 s] test_get_next_series_num (calibre.db.tests.reading.ReadingTest.test_get_next_series_num) -Test getting the next series number for a series ... ok [0.3 s] +Test getting the next series number for a series ... ok [0.5 s] test_has_book (calibre.db.tests.reading.ReadingTest.test_has_book) -Test detecting duplicates ... ok [0.3 s] +Test detecting duplicates ... ok [0.7 s] test_last_read_positions (calibre.db.tests.reading.ReadingTest.test_last_read_positions) ... ok [0.3 s] test_marked_field (calibre.db.tests.reading.ReadingTest.test_marked_field) -Test the marked field ... ok [0.3 s] +Test the marked field ... ok [0.5 s] test_proxy_metadata (calibre.db.tests.reading.ReadingTest.test_proxy_metadata) -Test the ProxyMetadata object used for composite columns ... ok [0.3 s] -test_python_templates (calibre.db.tests.reading.ReadingTest.test_python_templates) ... ok [0.3 s] +Test the ProxyMetadata object used for composite columns ... ok [0.5 s] +test_python_templates (calibre.db.tests.reading.ReadingTest.test_python_templates) ... ok [0.4 s] test_read (calibre.db.tests.reading.ReadingTest.test_read) -Test the reading of data from the database ... ok [0.3 s] +Test the reading of data from the database ... ok [0.7 s] test_restrictions (calibre.db.tests.reading.ReadingTest.test_restrictions) -Test searching with and without restrictions ... ok [0.3 s] +Test searching with and without restrictions ... ok [0.7 s] test_search_caching (calibre.db.tests.reading.ReadingTest.test_search_caching) -Test caching of searches ... ok [0.3 s] +Test caching of searches ... ok [0.8 s] test_searching (calibre.db.tests.reading.ReadingTest.test_searching) -Test searching returns the same data for both backends ... ok [0.3 s] -test_serialize_metadata (calibre.db.tests.reading.ReadingTest.test_serialize_metadata) ... ok [0.3 s] +Test searching returns the same data for both backends ... ok [0.9 s] +test_serialize_metadata (calibre.db.tests.reading.ReadingTest.test_serialize_metadata) ... ok [0.7 s] test_sorting (calibre.db.tests.reading.ReadingTest.test_sorting) -Test sorting ... ok [0.3 s] -test_storing_conversion_options (calibre.db.tests.reading.ReadingTest.test_storing_conversion_options) ... ok [0.3 s] -test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [0.3 s] -test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [0.4 s] -test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [2.3 s] -test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [0.6 s] -test_downgrade (calibre.db.tests.locking.TestLock.test_downgrade) ... ok [0.3 s] -test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [0.7 s] -test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.4 s] -test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [0.5 s] -test_release (calibre.db.tests.locking.TestLock.test_release) ... ok [2.6 s] -test_upgrade (calibre.db.tests.locking.TestLock.test_upgrade) ... ok [0.3 s] +Test sorting ... ok [0.9 s] +test_storing_conversion_options (calibre.db.tests.reading.ReadingTest.test_storing_conversion_options) ... ok [0.7 s] +test_template_db_functions (calibre.db.tests.reading.ReadingTest.test_template_db_functions) ... ok [0.9 s] +test_notes (calibre.db.tests.notes.NotesTest.test_notes) ... ok [0.8 s] +test_acquire (calibre.db.tests.locking.TestLock.test_acquire) ... ok [2.6 s] +test_contention (calibre.db.tests.locking.TestLock.test_contention) ... ok [1.5 s] +test_downgrade (calibre.db.tests.locking.TestLock.test_downgrade) ... ok [0.9 s] +test_multithread_deadlock (calibre.db.tests.locking.TestLock.test_multithread_deadlock) ... ok [0.9 s] +test_owns_locks (calibre.db.tests.locking.TestLock.test_owns_locks) ... ok [0.6 s] +test_recursive (calibre.db.tests.locking.TestLock.test_recursive) ... ok [0.3 s] +test_release (calibre.db.tests.locking.TestLock.test_release) ... ok [2.9 s] +test_upgrade (calibre.db.tests.locking.TestLock.test_upgrade) ... ok [0.6 s] test_get_property (calibre.db.tests.legacy.LegacyTest.test_get_property) -Test the get_property interface for reading data ... ok [1.1 s] +Test the get_property interface for reading data ... ok [1.0 s] test_legacy_adding_books (calibre.db.tests.legacy.LegacyTest.test_legacy_adding_books) -Test various adding/deleting books methods ... ok [3.1 s] +Test various adding/deleting books methods ... ok [0.7 s] test_legacy_conversion_options (calibre.db.tests.legacy.LegacyTest.test_legacy_conversion_options) -Test conversion options API ... ok [0.7 s] +Test conversion options API ... ok [1.1 s] test_legacy_coverage (calibre.db.tests.legacy.LegacyTest.test_legacy_coverage) -Check that the emulation of the legacy interface is (almost) total ... ok [0.8 s] +Check that the emulation of the legacy interface is (almost) total ... ok [0.6 s] test_legacy_custom (calibre.db.tests.legacy.LegacyTest.test_legacy_custom) -Test the legacy API for custom columns ... ok [2.5 s] +Test the legacy API for custom columns ... ok [2.3 s] test_legacy_custom_data (calibre.db.tests.legacy.LegacyTest.test_legacy_custom_data) -Test the API for custom data storage ... ok [1.3 s] +Test the API for custom data storage ... ok [0.8 s] test_legacy_delete_using (calibre.db.tests.legacy.LegacyTest.test_legacy_delete_using) -Test delete_using() API ... ok [0.4 s] +Test delete_using() API ... ok [1.2 s] test_legacy_direct (calibre.db.tests.legacy.LegacyTest.test_legacy_direct) -Test read-only methods that are directly equivalent in the old and new interface ... ok [0.3 s] +Test read-only methods that are directly equivalent in the old and new interface ... ok [1.1 s] test_legacy_getters (calibre.db.tests.legacy.LegacyTest.test_legacy_getters) -Test various functions to get individual bits of metadata ... ok [1.1 s] +Test various functions to get individual bits of metadata ... ok [0.7 s] test_legacy_saved_search (calibre.db.tests.legacy.LegacyTest.test_legacy_saved_search) -Test legacy saved search API ... ok [1.1 s] +Test legacy saved search API ... ok [1.0 s] test_legacy_setters (calibre.db.tests.legacy.LegacyTest.test_legacy_setters) -Test methods that are directly equivalent in the old and new interface ... ok [5.3 s] +Test methods that are directly equivalent in the old and new interface ... ok [4.0 s] test_library_wide_properties (calibre.db.tests.legacy.LegacyTest.test_library_wide_properties) -Test library wide properties ... ok [1.0 s] +Test library wide properties ... ok [0.9 s] test_refresh (calibre.db.tests.legacy.LegacyTest.test_refresh) -Test refreshing the view after a change to metadata.db ... ok [1.4 s] +Test refreshing the view after a change to metadata.db ... ok [2.0 s] test_fts_basic (calibre.db.tests.fts.FTSTest.test_fts_basic) ... ok [0.0 s] -test_fts_indexing (calibre.db.tests.fts.FTSTest.test_fts_indexing) ... ok [0.1 s] +test_fts_indexing (calibre.db.tests.fts.FTSTest.test_fts_indexing) ... ok [0.8 s] test_fts_query_syntax (calibre.db.tests.fts.FTSTest.test_fts_query_syntax) ... ok [0.0 s] test_fts_stemming (calibre.db.tests.fts.FTSTest.test_fts_stemming) ... ok [0.0 s] -test_fts_tokenize (calibre.db.tests.fts.FTSTest.test_fts_tokenize) ... ok [0.0 s] +test_fts_tokenize (calibre.db.tests.fts.FTSTest.test_fts_tokenize) ... ok [0.1 s] test_add_books (calibre.db.tests.add_remove.AddRemoveTest.test_add_books) Test the adding of new books ... ok [0.9 s] test_add_format (calibre.db.tests.add_remove.AddRemoveTest.test_add_format) -Test adding formats to an existing book record ... ok [0.7 s] -test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [0.4 s] +Test adding formats to an existing book record ... ok [1.2 s] +test_copy_to_library (calibre.db.tests.add_remove.AddRemoveTest.test_copy_to_library) ... ok [1.1 s] test_create_book_entry (calibre.db.tests.add_remove.AddRemoveTest.test_create_book_entry) -Test the creation of new book entries ... ok [0.3 s] +Test the creation of new book entries ... ok [1.0 s] test_format_orphan (calibre.db.tests.add_remove.AddRemoveTest.test_format_orphan) -Test that adding formats does not create orphans if the file name algorithm changes ... ok [0.2 s] -test_merging_extra_files (calibre.db.tests.add_remove.AddRemoveTest.test_merging_extra_files) ... ok [0.3 s] +Test that adding formats does not create orphans if the file name algorithm changes ... ok [0.9 s] +test_merging_extra_files (calibre.db.tests.add_remove.AddRemoveTest.test_merging_extra_files) ... ok [0.7 s] test_original_fmt (calibre.db.tests.add_remove.AddRemoveTest.test_original_fmt) -Test management of original fmt ... ok [0.9 s] +Test management of original fmt ... ok [0.6 s] test_remove_books (calibre.db.tests.add_remove.AddRemoveTest.test_remove_books) -Test removal of books ... ok [0.8 s] +Test removal of books ... ok [1.0 s] test_remove_formats (calibre.db.tests.add_remove.AddRemoveTest.test_remove_formats) -Test removal of formats from book records ... ok [1.1 s] -test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [3.2 s] -test_find_books_in_directory (calibre.db.tests.filesystem.FilesystemTest.test_find_books_in_directory) ... ok [0.3 s] +Test removal of formats from book records ... ok [1.0 s] +test_export_import (calibre.db.tests.filesystem.FilesystemTest.test_export_import) ... ok [5.1 s] +test_find_books_in_directory (calibre.db.tests.filesystem.FilesystemTest.test_find_books_in_directory) ... ok [0.7 s] test_fname_change (calibre.db.tests.filesystem.FilesystemTest.test_fname_change) -Test the changing of the filename but not the folder name ... ok [0.9 s] +Test the changing of the filename but not the folder name ... ok [0.4 s] test_library_move (calibre.db.tests.filesystem.FilesystemTest.test_library_move) -Test moving of library ... ok [0.9 s] +Test moving of library ... ok [0.4 s] test_long_filenames (calibre.db.tests.filesystem.FilesystemTest.test_long_filenames) -Test long file names ... ok [0.7 s] +Test long file names ... ok [0.3 s] test_metadata_move (calibre.db.tests.filesystem.FilesystemTest.test_metadata_move) -Test the moving of files when title/author change ... ok [0.3 s] -test_rename_of_extra_files (calibre.db.tests.filesystem.FilesystemTest.test_rename_of_extra_files) ... Traceback (most recent call last): +Test the moving of files when title/author change ... ok [0.4 s] +test_rename_of_extra_files (calibre.db.tests.filesystem.FilesystemTest.test_rename_of_extra_files) ... ok [0.7 s] +test_reserved_names (calibre.db.tests.filesystem.FilesystemTest.test_reserved_names) +Test that folders are not created with a windows reserve name ... Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -5255,9 +5293,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.9 s] -test_reserved_names (calibre.db.tests.filesystem.FilesystemTest.test_reserved_names) -Test that folders are not created with a windows reserve name ... ok [0.7 s] +ok [0.6 s] test_windows_atomic_move (calibre.db.tests.filesystem.FilesystemTest.test_windows_atomic_move) Test book file open in another process when changing metadata ... skipped 'Windows only' [0.0 s] test_fts_search (calibre.db.tests.fts_api.FTSAPITest.test_fts_search) ... Traceback (most recent call last): @@ -15103,8 +15139,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [9.3 s] -test_fts_to_text (calibre.db.tests.fts_api.FTSAPITest.test_fts_to_text) ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -15121,12 +15156,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.8 s] -test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [0.7 s] -test_annotations (calibre.db.tests.writing.WritingTest.test_annotations) -Test handling of annotations ... ok [0.9 s] -test_backup (calibre.db.tests.writing.WritingTest.test_backup) -Test the automatic backup of changed metadata ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -15143,12 +15173,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [3.1 s] -test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... ok [1.1 s] -test_composite_cache (calibre.db.tests.writing.WritingTest.test_composite_cache) -Test that the composite field cache is properly invalidated on writes ... ok [1.1 s] -test_conversion_options (calibre.db.tests.writing.WritingTest.test_conversion_options) -Test saving of conversion options ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -15165,21 +15190,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.9 s] -test_dirtied (calibre.db.tests.writing.WritingTest.test_dirtied) -Test the setting of the dirtied flag and the last_modified column ... ok [0.9 s] -test_dump_and_restore (calibre.db.tests.writing.WritingTest.test_dump_and_restore) -Test roundtripping the db through SQL ... get_categories: item Unknown is not in authors list! -ok [1.0 s] -test_fix_case_duplicates (calibre.db.tests.writing.WritingTest.test_fix_case_duplicates) -Test fixing of databases that have items in is_many fields that differ only by case ... ok [0.3 s] -test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... ok [0.3 s] -test_many_many_basic (calibre.db.tests.writing.WritingTest.test_many_many_basic) -Test the different code paths for writing to a many-many field ... ok [0.4 s] -test_many_one_basic (calibre.db.tests.writing.WritingTest.test_many_one_basic) -Test the different code paths for writing to a many-one field ... ok [0.4 s] -test_one_one (calibre.db.tests.writing.WritingTest.test_one_one) -Test setting of values in one-one fields ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -15213,11 +15224,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [6.8 s] -test_preferences (calibre.db.tests.writing.WritingTest.test_preferences) -Test getting and setting of preferences, especially with mutable objects ... ok [0.8 s] -test_remove_items (calibre.db.tests.writing.WritingTest.test_remove_items) -Test removal of many-(many,one) items ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -15234,46 +15241,6 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.6 s] -test_rename_items (calibre.db.tests.writing.WritingTest.test_rename_items) -Test renaming of many-(many,one) items ... ok [1.2 s] -test_set_author_data (calibre.db.tests.writing.WritingTest.test_set_author_data) ... ok [0.7 s] -test_set_cover (calibre.db.tests.writing.WritingTest.test_set_cover) -Test setting of cover ... ok [0.3 s] -test_set_metadata (calibre.db.tests.writing.WritingTest.test_set_metadata) -Test setting of metadata ... ok [1.1 s] -test_websocket_basic (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_basic) -Test basic interaction with the websocket server ... calibre server listening on 127.0.0.1:42665 -Too large control frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -RSV bits set in frame from client -Unknown OPCODE from client: 3 -Unknown OPCODE from client: 4 -Unknown OPCODE from client: 5 -Unknown OPCODE from client: 6 -Unknown OPCODE from client: 7 -Unknown OPCODE from client: 11 -Unknown OPCODE from client: 12 -Unknown OPCODE from client: 13 -Unknown OPCODE from client: 14 -Unknown OPCODE from client: 15 -Fragmented control frame from client -Fragmented control frame from client -Too large control frame from client -Client sent continuation frame with no message to continue -Client sent continuation frame with no message to continue -Client sent continuation frame with no message to continue -Client sent continuation frame with non-zero opcode -Client sent undecodeable UTF-8 -Client sent undecodeable UTF-8 -Client sent undecodeable UTF-8 -Client sent undecodeable UTF-8 -ok [0.4 s] -test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:40887 Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -15291,23 +15258,6 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [1.1 s] -test_library_id_construction (calibre.srv.tests.routes.TestRouter.test_library_id_construction) ... ok [0.0 s] -test_route_construction (calibre.srv.tests.routes.TestRouter.test_route_construction) -Test route construction ... ok [0.0 s] -test_route_finding (calibre.srv.tests.routes.TestRouter.test_route_finding) -Test route finding ... ok [0.0 s] -test_basic_css_transforms (calibre.srv.tests.fast_css_transform.TestTransform.test_basic_css_transforms) ... ok [0.0 s] -test_counting_chars_in_elems (calibre.srv.tests.fast_css_transform.TestTransform.test_counting_chars_in_elems) ... ok [0.0 s] -test_number_parsing (calibre.srv.tests.fast_css_transform.TestTransform.test_number_parsing) ... ok [0.0 s] -test_char_count (calibre.srv.tests.content.ContentTest.test_char_count) ... ok [0.5 s] -test_get (calibre.srv.tests.content.ContentTest.test_get) -Test /get ... calibre server listening on 127.0.0.1:37331 -ok [1.1 s] -test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [0.6 s] -test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... ok [0.6 s] -test_static (calibre.srv.tests.content.ContentTest.test_static) -Test serving of static content ... calibre server listening on 127.0.0.1:42669 Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -15325,26 +15275,6 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.6 s] -test_android_auth_workaround (calibre.srv.tests.auth.TestAuth.test_android_auth_workaround) -Test authentication workaround for Android ... calibre server listening on 127.0.0.1:46637 -ok [0.1 s] -test_basic_auth (calibre.srv.tests.auth.TestAuth.test_basic_auth) -Test HTTP Basic auth ... calibre server listening on 127.0.0.1:39249 -ok [0.5 s] -test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) -Test HTTP Digest auth ... calibre server listening on 127.0.0.1:43619 -ok [0.5 s] -test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:42617 -ok [0.8 s] -test_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.1 s] -test_ajax_categories (calibre.srv.tests.ajax.ContentTest.test_ajax_categories) -Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:35689 -ok [0.8 s] -test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:32831 -ok [0.8 s] -test_srv_restrictions (calibre.srv.tests.ajax.ContentTest.test_srv_restrictions) -Test that virtual lib. + search restriction works on all end points ... calibre server listening on 127.0.0.1:35217 Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -15362,38 +15292,23 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [0.9 s] -test_accept_encoding (calibre.srv.tests.http.TestHTTP.test_accept_encoding) -Test parsing of Accept-Encoding ... ok [0.0 s] -test_accept_language (calibre.srv.tests.http.TestHTTP.test_accept_language) -Test parsing of Accept-Language ... calibre server listening on 127.0.0.1:38083 -ok [0.2 s] -test_header_parsing (calibre.srv.tests.http.TestHTTP.test_header_parsing) -Test parsing of HTTP headers ... ok [0.0 s] -test_http_basic (calibre.srv.tests.http.TestHTTP.test_http_basic) -Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:43735 -Unhandled exception in state: State: _job_done Client: 127.0.0.1:40248 Request: GET /test/ HTTP/1.1 Traceback (most recent call last): - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 651, in tick - conn.handle_event(event) - ~~~~~~~~~~~~~~~~~^^^^^^^ - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 365, in _job_done - self.job_done(*event) - ~~~~~~~~~~~~~^^^^^^^^ - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/http_response.py", line 494, in job_done - reraise(etype, e, tb) - ~~~~~~~^^^^^^^^^^^^^^ - File "/build/reproducible-path/calibre-8.5.0+ds/src/polyglot/builtins.py", line 61, in reraise - raise value - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/pool.py", line 33, in run - result = func() - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/http_response.py", line 454, in run_request_handler - result = self.request_handler(data) - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/tests/http.py", line 203, in - server.change_handler(lambda data:1/0) - ~^~ -ZeroDivisionError: division by zero - + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() @@ -15649,39 +15564,7 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -ok [60.4 s] -test_http_response (calibre.srv.tests.http.TestHTTP.test_http_response) -Test HTTP protocol responses ... calibre server listening on 127.0.0.1:37909 -ok [0.2 s] -test_range_parsing (calibre.srv.tests.http.TestHTTP.test_range_parsing) -Test parsing of Range header ... ok [0.0 s] -test_static_generation (calibre.srv.tests.http.TestHTTP.test_static_generation) -Test static generation ... calibre server listening on 127.0.0.1:34017 -ok [0.0 s] -test_bonjour (calibre.srv.tests.loop.LoopTest.test_bonjour) -Test advertising via BonJour ... skipped 'Disabled as it is failing on the build server, need to investigate' [0.0 s] -test_dual_stack (calibre.srv.tests.loop.LoopTest.test_dual_stack) ... calibre server listening on [::]:33593 -ok [0.0 s] -test_fallback_interface (calibre.srv.tests.loop.LoopTest.test_fallback_interface) -Test falling back to default interface ... Failed to bind to 1.1.1.1 with error: No socket could be created -- (('1.1.1.1', 0): [Errno 99] Cannot assign requested address). Trying to bind to the default interface: 127.0.1.1 instead -calibre server listening on 127.0.1.1:36127 -ok [0.9 s] -test_jobs_manager (calibre.srv.tests.loop.LoopTest.test_jobs_manager) -Test the jobs manager ... ok [1.2 s] -test_log_rotation (calibre.srv.tests.loop.LoopTest.test_log_rotation) -Test log rotation ... ok [0.0 s] -test_monotonic (calibre.srv.tests.loop.LoopTest.test_monotonic) -Test the monotonic() clock ... ok [0.1 s] -test_plugins (calibre.srv.tests.loop.LoopTest.test_plugins) -Test plugin semantics ... calibre server listening on 127.0.0.1:40623 -ok [0.0 s] -test_ring_buffer (calibre.srv.tests.loop.LoopTest.test_ring_buffer) -Test the ring buffer used for reads ... ok [0.0 s] -test_socket_activation (calibre.srv.tests.loop.LoopTest.test_socket_activation) -Test socket activation ... calibre server listening on 127.0.0.1:47435 -ok [0.0 s] -test_ssl (calibre.srv.tests.loop.LoopTest.test_ssl) -Test serving over SSL ... Traceback (most recent call last): +Traceback (most recent call last): File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available has_more = do_one() File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one @@ -15698,283 +15581,13305 @@ ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "src/cursor.c", line 172, in resetcursor apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database -calibre server listening on 127.0.0.1:45859 -ok [0.7 s] -test_workers (calibre.srv.tests.loop.LoopTest.test_workers) -Test worker semantics ... calibre server listening on 127.0.0.1:46317 -calibre server listening on 127.0.0.1:34325 -ServerWorker failed to notify server on job completion Traceback (most recent call last): - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/pool.py", line 41, in run - self.notify_server() - ~~~~~~~~~~~~~~~~~~^^ - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 695, in job_completed - self.write_to_control(JOB_DONE) - ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ - File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 688, in write_to_control - self.control_in.write(what) - ~~~~~~~~~~~~~~~~~~~~~^^^^^^ -ValueError: write to closed file - -ok [0.2 s] -test_7z (calibre.test_build.BuildTest.test_7z) ... Failed to shutdown 1 workers in ThreadPool cleanly -ok [0.1 s] -test_apsw (calibre.test_build.BuildTest.test_apsw) ... ok [0.0 s] -test_bs4 (calibre.test_build.BuildTest.test_bs4) ... ok [0.0 s] -test_certgen (calibre.test_build.BuildTest.test_certgen) ... ok [0.2 s] -test_chardet (calibre.test_build.BuildTest.test_chardet) ... ok [0.0 s] -test_dlls (calibre.test_build.BuildTest.test_dlls) ... skipped 'DLL loading needs testing only on windows (non-continuous integration)' [0.0 s] -test_executables (calibre.test_build.BuildTest.test_executables) ... skipped 'Only makes sense to test executables in frozen builds' [0.0 s] -test_feedparser (calibre.test_build.BuildTest.test_feedparser) ... ok [0.0 s] -test_ffmpeg (calibre.test_build.BuildTest.test_ffmpeg) ... ok [0.0 s] -test_file_dialog_helper (calibre.test_build.BuildTest.test_file_dialog_helper) ... skipped 'File dialog helper only used on windows (non-continuous-integration)' [0.0 s] -test_fonttools (calibre.test_build.BuildTest.test_fonttools) ... ok [0.0 s] -test_fsevents (calibre.test_build.BuildTest.test_fsevents) ... skipped 'FSEvents only present on OS X' [0.0 s] -test_html2text (calibre.test_build.BuildTest.test_html2text) ... ok [0.0 s] -test_html5_parser (calibre.test_build.BuildTest.test_html5_parser) ... ok [0.0 s] -test_html5lib (calibre.test_build.BuildTest.test_html5lib) ... ok [0.0 s] -test_hunspell (calibre.test_build.BuildTest.test_hunspell) ... ok [0.0 s] -test_imaging (calibre.test_build.BuildTest.test_imaging) ... ok [0.0 s] -test_loaders (calibre.test_build.BuildTest.test_loaders) ... ok [0.0 s] -test_lxml (calibre.test_build.BuildTest.test_lxml) ... ok [0.0 s] -test_lzma (calibre.test_build.BuildTest.test_lzma) ... ok [0.0 s] -test_markdown (calibre.test_build.BuildTest.test_markdown) ... ok [0.0 s] -test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.1 s] -test_netifaces (calibre.test_build.BuildTest.test_netifaces) ... ok [0.0 s] -test_openssl (calibre.test_build.BuildTest.test_openssl) ... ok [0.0 s] -test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.0 s] -test_podofo (calibre.test_build.BuildTest.test_podofo) ... ok [0.0 s] -test_psutil (calibre.test_build.BuildTest.test_psutil) ... ok [0.0 s] -test_pychm (calibre.test_build.BuildTest.test_pychm) ... ok [0.0 s] -test_pycryptodome (calibre.test_build.BuildTest.test_pycryptodome) ... ok [0.0 s] -test_regex (calibre.test_build.BuildTest.test_regex) ... ok [0.0 s] -test_speech_dispatcher (calibre.test_build.BuildTest.test_speech_dispatcher) ... ok [0.0 s] -test_sqlite (calibre.test_build.BuildTest.test_sqlite) ... ok [0.0 s] -test_terminal (calibre.test_build.BuildTest.test_terminal) ... ok [0.0 s] -test_tinycss_tokenizer (calibre.test_build.BuildTest.test_tinycss_tokenizer) ... ok [0.0 s] -test_unrar (calibre.test_build.BuildTest.test_unrar) ... skipped 'Module unrardll is missing' [0.0 s] -test_winutil (calibre.test_build.BuildTest.test_winutil) ... skipped 'winutil is windows only' [0.0 s] -test_wpd (calibre.test_build.BuildTest.test_wpd) ... skipped 'WPD is windows only' [0.0 s] -test_zeroconf (calibre.test_build.BuildTest.test_zeroconf) ... ok [0.0 s] -test_zstd (calibre.test_build.BuildTest.test_zstd) ... ok [0.0 s] -test_forked_map (calibre.utils.forked_map.find_tests..TestForkedMap.test_forked_map) ... ok [0.7 s] - -Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.4 s] calibre.db.tests.fts_api.FTSAPITest.test_fts_search [9.3 s] calibre.db.tests.writing.WritingTest.test_one_one [6.8 s] - ----------------------------------------------------------------------- -Ran 342 tests in 168.512s - -OK (skipped=10) -env TZ=UTC CI=true python3.13 setup.py test --test-name=ajax_book --exclude-test-name=fts_pool --exclude-test-name=piper --exclude-test-name=dbus --exclude-test-name=recipe_browser_qt --exclude-test-name=recipe_browser_webengine -::group::test - -* -* Running test -* - -test_ajax_book (calibre.srv.tests.ajax.ContentTest.test_ajax_book) -Test /ajax/book ... calibre server listening on 127.0.0.1:38937 -ok [0.2 s] - ----------------------------------------------------------------------- -Ran 1 test in 0.218s - -OK -env TZ=UTC CI=true python3.13 setup.py test --test-name=qt --exclude-test-name=fts_pool --exclude-test-name=piper --exclude-test-name=dbus --exclude-test-name=recipe_browser_qt --exclude-test-name=recipe_browser_webengine -::group::test - -* -* Running test -* - -test_qt (calibre.test_build.BuildTest.test_qt) ... qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.1-1+b1 GPL version 2 or later -qt.multimedia.ffmpeg: Available HW decoding frameworks: -qt.multimedia.ffmpeg: Available HW encoding frameworks: -PulseAudioService: pa_context_connect() failed -QRhiGles2: Failed to create temporary context -QRhiGles2: Failed to create context -This plugin does not support createPlatformVulkanInstance -QVulkanInstance: Failed to initialize Vulkan -Unable to detect GPU vendor. -WebEngineContext is used before QtWebEngineQuick::initialize() or OpenGL context creation failed. -qt.webenginecontext: - Chromium GL Backend: disabled - Chromium ANGLE Backend: disabled - Chromium Vulkan Backend: disabled - - QSG RHI Backend: OpenGL - QSG RHI Backend Supported: yes - GPU Vendor: Unknown - - Using GLX: no - Using EGL: no - Using Shared GL: yes - Using Software Dynamic GL: no - Surface Type: DefaultRenderableType - Surface Profile: NoProfile - Surface Version: 2.0 - - Init Parameters: - * application-name setup.py - * browser-subprocess-path /usr/lib/qt6/libexec/QtWebEngineProcess - * disable-blink-features WebOTP - * disable-features InstalledApp,EyeDropper,BackgroundFetch,WebOTP,WebPayments,WebUSB - * disable-gpu - * disable-setuid-sandbox - * disable-speech-api - * enable-features NetworkServiceInProcess2,TracingServiceInProcess - * in-process-gpu - * use-gl disabled - -ok [2.8 s] - ----------------------------------------------------------------------- -Ran 1 test in 2.812s - -OK -make[3]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' -make[2]: 'test' is up to date. -make[2]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' -make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' - create-stamp debian/debhelper-build-stamp - dh_testroot -O--buildsystem=makefile - dh_prep -O--buildsystem=makefile - debian/rules override_dh_auto_install -make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' -dh_auto_install -O--buildsystem=makefile -- -f debian/calibre-builder.mak install - make -j12 install DESTDIR=/build/reproducible-path/calibre-8.5.0\+ds/debian/tmp AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" -f debian/calibre-builder.mak install -make[2]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' -make MAKEFLAGS= -f debian/rules calibre_auto_install -make[3]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' -mkdir -p debian/tmp/usr/share/icons/hicolor -mkdir -p debian/tmp/usr/share/applications -mkdir -p debian/tmp/usr/share/mime/packages -mkdir -p debian/tmp/usr/share/zsh/vendor-completions -env XDG_DATA_DIRS=/build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share CALIBRE_CONFIG_DIRECTORY=debian/tmp/config python3.13 setup.py install --root=debian/tmp/usr - -* -* Running build -* - -Building 29 extensions - -####### Building headless QPA plugin ####### -* build took 0.1 seconds - -* -* Running gui -* - -* gui took 0.1 seconds - -* -* Running install -* - -INSTALL paths: - LIB: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/lib/calibre - SHARE: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/calibre -Installing code to /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/lib/calibre -Installing resources to /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/calibre -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-device -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-meta -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-convert -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-polish -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/markdown-calibre -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/web2disk -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-server -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/lrf2lrs -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/lrs2lrf -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-debug -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibredb -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-parallel -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-customize -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-complete -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/fetch-ebook-metadata -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-smtp -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/lrfviewer -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-viewer -Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-edit -Installing calibre environment module: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/lib/python3.13/site-packages/init_calibre.py -Setting up command-line completion... -Installing zsh completion to: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/zsh/vendor-completions/_calibre -Installing bash completion to: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/bash-completion/completions/ -Setting up desktop integration... - - -calibre successfully installed. You can start it by running the command calibre -* install took 6.0 seconds -rm debian/tmp/usr/share/calibre/calibre-portable.* -rm debian/tmp/usr/lib/python*/site-packages/init_calibre.py -rmdir debian/tmp/usr/share/desktop-directories -rm debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/update.py -rmdir debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/ -rm debian/tmp/usr/lib/calibre/tinycss/tests/*.py -rmdir debian/tmp/usr/lib/calibre/tinycss/tests/ -find debian/tmp/usr/lib/calibre/calibre/gui2 -name '*_ui.py' -print | xargs --no-run-if-empty sed --separate --file=debian/remove-ui-basepath.sed --in-place -make[3]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' -make[2]: 'install' is up to date. -make[2]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' -make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' - dh_install -O--buildsystem=makefile - dh_installdocs -O--buildsystem=makefile - dh_installchangelogs -O--buildsystem=makefile - debian/rules override_dh_installman -make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' -debian/install-manpages.sh -make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' - debian/rules override_dh_python3 -make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' -dh_python3 --no-package=calibre-bin --shebang=/usr/bin/python3.13 -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/lib/calibre/calibre/devices/cli.py -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-edit -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-viewer -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrfviewer -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-smtp -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/fetch-ebook-metadata -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-complete -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-customize -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-parallel -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibredb -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-debug -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrs2lrf -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrf2lrs -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-server -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/web2disk -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/markdown-calibre -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-polish -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-convert -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-meta -I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-device -make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' - dh_installsystemduser -O--buildsystem=makefile - dh_lintian -O--buildsystem=makefile - dh_icons -O--buildsystem=makefile - dh_perl -O--buildsystem=makefile - dh_link -O--buildsystem=makefile - dh_strip_nondeterminism -O--buildsystem=makefile - dh_compress -O--buildsystem=makefile - dh_fixperms -O--buildsystem=makefile - dh_missing -O--buildsystem=makefile - dh_dwz -a -O--buildsystem=makefile - dh_strip -a -O--buildsystem=makefile - dh_makeshlibs -a -O--buildsystem=makefile - dh_shlibdeps -a -O--buildsystem=makefile -dpkg-shlibdeps: warning: diversions involved - output may be incorrect - diversion by libc6 from: /lib/ld-linux-aarch64.so.1 -dpkg-shlibdeps: warning: diversions involved - output may be incorrect - diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged - dh_installdeb -O--buildsystem=makefile - debian/rules override_dh_gencontrol -make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' -dh_gencontrol -- -Vpyqt:Version=6.9.0-2 -make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' - dh_md5sums -O--buildsystem=makefile - dh_builddeb -O--buildsystem=makefile -dpkg-deb: building package 'calibre' in '../calibre_8.5.0+ds-1_all.deb'. -dpkg-deb: building package 'calibre-bin' in '../calibre-bin_8.5.0+ds-1_arm64.deb'. + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [12.6 s] +test_fts_to_text (calibre.db.tests.fts_api.FTSAPITest.test_fts_to_text) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.5 s] +test_fts_triggers (calibre.db.tests.fts_api.FTSAPITest.test_fts_triggers) ... ok [0.6 s] +test_annotations (calibre.db.tests.writing.WritingTest.test_annotations) +Test handling of annotations ... ok [1.0 s] +test_backup (calibre.db.tests.writing.WritingTest.test_backup) +Test the automatic backup of changed metadata ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [2.8 s] +test_changed_events (calibre.db.tests.writing.WritingTest.test_changed_events) ... ok [0.7 s] +test_composite_cache (calibre.db.tests.writing.WritingTest.test_composite_cache) +Test that the composite field cache is properly invalidated on writes ... ok [0.8 s] +test_conversion_options (calibre.db.tests.writing.WritingTest.test_conversion_options) +Test saving of conversion options ... ok [0.6 s] +test_dirtied (calibre.db.tests.writing.WritingTest.test_dirtied) +Test the setting of the dirtied flag and the last_modified column ... ok [0.6 s] +test_dump_and_restore (calibre.db.tests.writing.WritingTest.test_dump_and_restore) +Test roundtripping the db through SQL ... get_categories: item Unknown is not in authors list! +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.1 s] +test_fix_case_duplicates (calibre.db.tests.writing.WritingTest.test_fix_case_duplicates) +Test fixing of databases that have items in is_many fields that differ only by case ... ok [0.8 s] +test_link_maps (calibre.db.tests.writing.WritingTest.test_link_maps) ... ok [0.3 s] +test_many_many_basic (calibre.db.tests.writing.WritingTest.test_many_many_basic) +Test the different code paths for writing to a many-many field ... ok [1.2 s] +test_many_one_basic (calibre.db.tests.writing.WritingTest.test_many_one_basic) +Test the different code paths for writing to a many-one field ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.1 s] +test_one_one (calibre.db.tests.writing.WritingTest.test_one_one) +Test setting of values in one-one fields ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [11.0 s] +test_preferences (calibre.db.tests.writing.WritingTest.test_preferences) +Test getting and setting of preferences, especially with mutable objects ... ok [0.8 s] +test_remove_items (calibre.db.tests.writing.WritingTest.test_remove_items) +Test removal of many-(many,one) items ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.0 s] +test_rename_items (calibre.db.tests.writing.WritingTest.test_rename_items) +Test renaming of many-(many,one) items ... ok [1.3 s] +test_set_author_data (calibre.db.tests.writing.WritingTest.test_set_author_data) ... ok [0.6 s] +test_set_cover (calibre.db.tests.writing.WritingTest.test_set_cover) +Test setting of cover ... ok [0.7 s] +test_set_metadata (calibre.db.tests.writing.WritingTest.test_set_metadata) +Test setting of metadata ... ok [0.5 s] +test_websocket_basic (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_basic) +Test basic interaction with the websocket server ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +calibre server listening on 127.0.0.1:40747 +Too large control frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +RSV bits set in frame from client +Unknown OPCODE from client: 3 +Unknown OPCODE from client: 4 +Unknown OPCODE from client: 5 +Unknown OPCODE from client: 6 +Unknown OPCODE from client: 7 +Unknown OPCODE from client: 11 +Unknown OPCODE from client: 12 +Unknown OPCODE from client: 13 +Unknown OPCODE from client: 14 +Unknown OPCODE from client: 15 +Fragmented control frame from client +Fragmented control frame from client +Too large control frame from client +Client sent continuation frame with no message to continue +Client sent continuation frame with no message to continue +Client sent continuation frame with no message to continue +Client sent continuation frame with non-zero opcode +Client sent undecodeable UTF-8 +Client sent undecodeable UTF-8 +Client sent undecodeable UTF-8 +Client sent undecodeable UTF-8 +ok [0.4 s] +test_websocket_perf (calibre.srv.tests.web_sockets.WebSocketTest.test_websocket_perf) ... calibre server listening on 127.0.0.1:42989 +ok [0.7 s] +test_library_id_construction (calibre.srv.tests.routes.TestRouter.test_library_id_construction) ... ok [0.0 s] +test_route_construction (calibre.srv.tests.routes.TestRouter.test_route_construction) +Test route construction ... ok [0.0 s] +test_route_finding (calibre.srv.tests.routes.TestRouter.test_route_finding) +Test route finding ... ok [0.0 s] +test_basic_css_transforms (calibre.srv.tests.fast_css_transform.TestTransform.test_basic_css_transforms) ... ok [0.0 s] +test_counting_chars_in_elems (calibre.srv.tests.fast_css_transform.TestTransform.test_counting_chars_in_elems) ... ok [0.0 s] +test_number_parsing (calibre.srv.tests.fast_css_transform.TestTransform.test_number_parsing) ... ok [0.0 s] +test_char_count (calibre.srv.tests.content.ContentTest.test_char_count) ... ok [0.3 s] +test_get (calibre.srv.tests.content.ContentTest.test_get) +Test /get ... calibre server listening on 127.0.0.1:43805 +ok [0.7 s] +test_html_as_json (calibre.srv.tests.content.ContentTest.test_html_as_json) ... ok [0.3 s] +test_last_read_cache (calibre.srv.tests.content.ContentTest.test_last_read_cache) ... ok [0.5 s] +test_static (calibre.srv.tests.content.ContentTest.test_static) +Test serving of static content ... calibre server listening on 127.0.0.1:40759 +ok [1.0 s] +test_android_auth_workaround (calibre.srv.tests.auth.TestAuth.test_android_auth_workaround) +Test authentication workaround for Android ... calibre server listening on 127.0.0.1:35615 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [0.4 s] +test_basic_auth (calibre.srv.tests.auth.TestAuth.test_basic_auth) +Test HTTP Basic auth ... calibre server listening on 127.0.0.1:38819 +ok [0.3 s] +test_digest_auth (calibre.srv.tests.auth.TestAuth.test_digest_auth) +Test HTTP Digest auth ... calibre server listening on 127.0.0.1:41079 +ok [1.1 s] +test_fail_ban (calibre.srv.tests.auth.TestAuth.test_fail_ban) ... calibre server listening on 127.0.0.1:33545 +ok [0.7 s] +test_library_restrictions (calibre.srv.tests.auth.TestAuth.test_library_restrictions) ... ok [0.1 s] +test_ajax_categories (calibre.srv.tests.ajax.ContentTest.test_ajax_categories) +Test /ajax/categories and /ajax/search ... calibre server listening on 127.0.0.1:33143 +ok [0.6 s] +test_srv_add_book (calibre.srv.tests.ajax.ContentTest.test_srv_add_book) ... calibre server listening on 127.0.0.1:44703 +ok [0.9 s] +test_srv_restrictions (calibre.srv.tests.ajax.ContentTest.test_srv_restrictions) +Test that virtual lib. + search restriction works on all end points ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +calibre server listening on 127.0.0.1:45931 +ok [1.1 s] +test_accept_encoding (calibre.srv.tests.http.TestHTTP.test_accept_encoding) +Test parsing of Accept-Encoding ... ok [0.0 s] +test_accept_language (calibre.srv.tests.http.TestHTTP.test_accept_language) +Test parsing of Accept-Language ... calibre server listening on 127.0.0.1:38815 +ok [0.5 s] +test_header_parsing (calibre.srv.tests.http.TestHTTP.test_header_parsing) +Test parsing of HTTP headers ... ok [0.0 s] +test_http_basic (calibre.srv.tests.http.TestHTTP.test_http_basic) +Test basic HTTP protocol conformance ... calibre server listening on 127.0.0.1:42921 +Unhandled exception in state: State: _job_done Client: 127.0.0.1:57822 Request: GET /test/ HTTP/1.1 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 651, in tick + conn.handle_event(event) + ~~~~~~~~~~~~~~~~~^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 365, in _job_done + self.job_done(*event) + ~~~~~~~~~~~~~^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/http_response.py", line 494, in job_done + reraise(etype, e, tb) + ~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/polyglot/builtins.py", line 61, in reraise + raise value + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/pool.py", line 33, in run + result = func() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/http_response.py", line 454, in run_request_handler + result = self.request_handler(data) + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/tests/http.py", line 203, in + server.change_handler(lambda data:1/0) + ~^~ +ZeroDivisionError: division by zero + +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [60.4 s] +test_http_response (calibre.srv.tests.http.TestHTTP.test_http_response) +Test HTTP protocol responses ... calibre server listening on 127.0.0.1:39853 +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [3.2 s] +test_range_parsing (calibre.srv.tests.http.TestHTTP.test_range_parsing) +Test parsing of Range header ... ok [0.0 s] +test_static_generation (calibre.srv.tests.http.TestHTTP.test_static_generation) +Test static generation ... calibre server listening on 127.0.0.1:38777 +ok [0.2 s] +test_bonjour (calibre.srv.tests.loop.LoopTest.test_bonjour) +Test advertising via BonJour ... skipped 'Disabled as it is failing on the build server, need to investigate' [0.0 s] +test_dual_stack (calibre.srv.tests.loop.LoopTest.test_dual_stack) ... calibre server listening on [::]:36897 +ok [0.2 s] +test_fallback_interface (calibre.srv.tests.loop.LoopTest.test_fallback_interface) +Test falling back to default interface ... Failed to bind to 1.1.1.1 with error: No socket could be created -- (('1.1.1.1', 0): [Errno 99] Cannot assign requested address). Trying to bind to the default interface: 127.0.1.1 instead +calibre server listening on 127.0.1.1:42431 +ok [1.0 s] +test_jobs_manager (calibre.srv.tests.loop.LoopTest.test_jobs_manager) +Test the jobs manager ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [1.7 s] +test_log_rotation (calibre.srv.tests.loop.LoopTest.test_log_rotation) +Test log rotation ... ok [0.0 s] +test_monotonic (calibre.srv.tests.loop.LoopTest.test_monotonic) +Test the monotonic() clock ... ok [0.1 s] +test_plugins (calibre.srv.tests.loop.LoopTest.test_plugins) +Test plugin semantics ... calibre server listening on 127.0.0.1:43853 +ok [0.2 s] +test_ring_buffer (calibre.srv.tests.loop.LoopTest.test_ring_buffer) +Test the ring buffer used for reads ... ok [0.0 s] +test_socket_activation (calibre.srv.tests.loop.LoopTest.test_socket_activation) +Test socket activation ... calibre server listening on 127.0.0.1:47325 +ok [0.2 s] +test_ssl (calibre.srv.tests.loop.LoopTest.test_ssl) +Test serving over SSL ... calibre server listening on 127.0.0.1:42485 +ok [1.3 s] +test_workers (calibre.srv.tests.loop.LoopTest.test_workers) +Test worker semantics ... calibre server listening on 127.0.0.1:36881 +calibre server listening on 127.0.0.1:41829 +Failed to shutdown 1 workers in ThreadPool cleanly +ServerWorker failed to notify server on job completion +Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/pool.py", line 41, in run + self.notify_server() + ~~~~~~~~~~~~~~~~~~^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 695, in job_completed + self.write_to_control(JOB_DONE) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/srv/loop.py", line 688, in write_to_control + self.control_in.write(what) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^ +ValueError: write to closed file + +ok [0.3 s] +test_7z (calibre.test_build.BuildTest.test_7z) ... ok [1.2 s] +test_apsw (calibre.test_build.BuildTest.test_apsw) ... ok [0.0 s] +test_bs4 (calibre.test_build.BuildTest.test_bs4) ... ok [0.0 s] +test_certgen (calibre.test_build.BuildTest.test_certgen) ... ok [0.2 s] +test_chardet (calibre.test_build.BuildTest.test_chardet) ... ok [0.1 s] +test_dlls (calibre.test_build.BuildTest.test_dlls) ... skipped 'DLL loading needs testing only on windows (non-continuous integration)' [0.0 s] +test_executables (calibre.test_build.BuildTest.test_executables) ... skipped 'Only makes sense to test executables in frozen builds' [0.0 s] +test_feedparser (calibre.test_build.BuildTest.test_feedparser) ... ok [0.0 s] +test_ffmpeg (calibre.test_build.BuildTest.test_ffmpeg) ... Traceback (most recent call last): + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 574, in loop_while_more_available + has_more = do_one() + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/cache.py", line 547, in do_one + self.backend.remove_dirty_fts(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 1125, in remove_dirty_fts + return self.fts.remove_dirty(book_id, fmt) + ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/fts/connect.py", line 87, in remove_dirty + conn.execute('DELETE FROM fts_db.dirtied_formats WHERE book=? AND format=?', (book_id, fmt.upper())) + ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/build/reproducible-path/calibre-8.5.0+ds/src/calibre/db/backend.py", line 433, in execute + return cursor.execute(sql, bindings) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ + File "src/cursor.c", line 172, in resetcursor +apsw.ReadOnlyError: ReadOnlyError: attempt to write a readonly database +ok [2.1 s] +test_file_dialog_helper (calibre.test_build.BuildTest.test_file_dialog_helper) ... skipped 'File dialog helper only used on windows (non-continuous-integration)' [0.0 s] +test_fonttools (calibre.test_build.BuildTest.test_fonttools) ... ok [0.0 s] +test_fsevents (calibre.test_build.BuildTest.test_fsevents) ... skipped 'FSEvents only present on OS X' [0.0 s] +test_html2text (calibre.test_build.BuildTest.test_html2text) ... ok [0.0 s] +test_html5_parser (calibre.test_build.BuildTest.test_html5_parser) ... ok [0.0 s] +test_html5lib (calibre.test_build.BuildTest.test_html5lib) ... ok [0.0 s] +test_hunspell (calibre.test_build.BuildTest.test_hunspell) ... ok [0.1 s] +test_imaging (calibre.test_build.BuildTest.test_imaging) ... ok [0.1 s] +test_loaders (calibre.test_build.BuildTest.test_loaders) ... ok [0.0 s] +test_lxml (calibre.test_build.BuildTest.test_lxml) ... ok [0.0 s] +test_lzma (calibre.test_build.BuildTest.test_lzma) ... ok [0.0 s] +test_markdown (calibre.test_build.BuildTest.test_markdown) ... ok [0.0 s] +test_msgpack (calibre.test_build.BuildTest.test_msgpack) ... ok [0.4 s] +test_netifaces (calibre.test_build.BuildTest.test_netifaces) ... ok [0.0 s] +test_openssl (calibre.test_build.BuildTest.test_openssl) ... ok [0.0 s] +test_plugins (calibre.test_build.BuildTest.test_plugins) ... ok [0.2 s] +test_podofo (calibre.test_build.BuildTest.test_podofo) ... ok [0.1 s] +test_psutil (calibre.test_build.BuildTest.test_psutil) ... ok [0.0 s] +test_pychm (calibre.test_build.BuildTest.test_pychm) ... ok [0.0 s] +test_pycryptodome (calibre.test_build.BuildTest.test_pycryptodome) ... ok [0.0 s] +test_regex (calibre.test_build.BuildTest.test_regex) ... ok [0.0 s] +test_speech_dispatcher (calibre.test_build.BuildTest.test_speech_dispatcher) ... ok [0.0 s] +test_sqlite (calibre.test_build.BuildTest.test_sqlite) ... ok [0.0 s] +test_terminal (calibre.test_build.BuildTest.test_terminal) ... ok [0.0 s] +test_tinycss_tokenizer (calibre.test_build.BuildTest.test_tinycss_tokenizer) ... ok [0.0 s] +test_unrar (calibre.test_build.BuildTest.test_unrar) ... skipped 'Module unrardll is missing' [0.0 s] +test_winutil (calibre.test_build.BuildTest.test_winutil) ... skipped 'winutil is windows only' [0.0 s] +test_wpd (calibre.test_build.BuildTest.test_wpd) ... skipped 'WPD is windows only' [0.0 s] +test_zeroconf (calibre.test_build.BuildTest.test_zeroconf) ... ok [0.0 s] +test_zstd (calibre.test_build.BuildTest.test_zstd) ... ok [0.0 s] +test_forked_map (calibre.utils.forked_map.find_tests..TestForkedMap.test_forked_map) ... ok [2.2 s] + +Slowest tests: calibre.srv.tests.http.TestHTTP.test_http_basic [60.4 s] calibre.db.tests.fts_api.FTSAPITest.test_fts_search [12.6 s] calibre.utils.run_tests.TestImports.test_import_of_all_python_modules [11.8 s] + +---------------------------------------------------------------------- +Ran 342 tests in 221.738s + +OK (skipped=10) +env TZ=UTC CI=true python3.13 setup.py test --test-name=ajax_book --exclude-test-name=fts_pool --exclude-test-name=piper --exclude-test-name=dbus --exclude-test-name=recipe_browser_qt --exclude-test-name=recipe_browser_webengine +::group::test + +* +* Running test +* + +test_ajax_book (calibre.srv.tests.ajax.ContentTest.test_ajax_book) +Test /ajax/book ... calibre server listening on 127.0.0.1:39183 +ok [0.5 s] + +---------------------------------------------------------------------- +Ran 1 test in 0.522s + +OK +env TZ=UTC CI=true python3.13 setup.py test --test-name=qt --exclude-test-name=fts_pool --exclude-test-name=piper --exclude-test-name=dbus --exclude-test-name=recipe_browser_qt --exclude-test-name=recipe_browser_webengine +::group::test + +* +* Running test +* + +test_qt (calibre.test_build.BuildTest.test_qt) ... qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1.1-1+b1 GPL version 2 or later +qt.multimedia.ffmpeg: Available HW decoding frameworks: +qt.multimedia.ffmpeg: Available HW encoding frameworks: +PulseAudioService: pa_context_connect() failed +QRhiGles2: Failed to create temporary context +QRhiGles2: Failed to create context +This plugin does not support createPlatformVulkanInstance +QVulkanInstance: Failed to initialize Vulkan +Unable to detect GPU vendor. +WebEngineContext is used before QtWebEngineQuick::initialize() or OpenGL context creation failed. +qt.webenginecontext: + Chromium GL Backend: disabled + Chromium ANGLE Backend: disabled + Chromium Vulkan Backend: disabled + + QSG RHI Backend: OpenGL + QSG RHI Backend Supported: yes + GPU Vendor: Unknown + + Using GLX: no + Using EGL: no + Using Shared GL: yes + Using Software Dynamic GL: no + Surface Type: DefaultRenderableType + Surface Profile: NoProfile + Surface Version: 2.0 + + Init Parameters: + * application-name setup.py + * browser-subprocess-path /usr/lib/qt6/libexec/QtWebEngineProcess + * disable-blink-features WebOTP + * disable-features InstalledApp,EyeDropper,BackgroundFetch,WebOTP,WebPayments,WebUSB + * disable-gpu + * disable-setuid-sandbox + * disable-speech-api + * enable-features NetworkServiceInProcess2,TracingServiceInProcess + * in-process-gpu + * use-gl disabled + +ok [17.6 s] + +---------------------------------------------------------------------- +Ran 1 test in 17.604s + +OK +make[3]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' +make[2]: 'test' is up to date. +make[2]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' +make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' + create-stamp debian/debhelper-build-stamp + dh_testroot -O--buildsystem=makefile + dh_prep -O--buildsystem=makefile + debian/rules override_dh_auto_install +make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' +dh_auto_install -O--buildsystem=makefile -- -f debian/calibre-builder.mak install + make -j12 install DESTDIR=/build/reproducible-path/calibre-8.5.0\+ds/debian/tmp AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true" -f debian/calibre-builder.mak install +make[2]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' +make MAKEFLAGS= -f debian/rules calibre_auto_install +make[3]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' +mkdir -p debian/tmp/usr/share/icons/hicolor +mkdir -p debian/tmp/usr/share/applications +mkdir -p debian/tmp/usr/share/mime/packages +mkdir -p debian/tmp/usr/share/zsh/vendor-completions +env XDG_DATA_DIRS=/build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share CALIBRE_CONFIG_DIRECTORY=debian/tmp/config python3.13 setup.py install --root=debian/tmp/usr + +* +* Running build +* + +Building 29 extensions + +####### Building headless QPA plugin ####### +* build took 0.4 seconds + +* +* Running gui +* + +* gui took 0.2 seconds + +* +* Running install +* + +INSTALL paths: + LIB: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/lib/calibre + SHARE: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/calibre +Installing code to /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/lib/calibre +Installing resources to /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/calibre +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-device +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-meta +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-convert +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-polish +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/markdown-calibre +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/web2disk +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-server +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/lrf2lrs +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/lrs2lrf +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-debug +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibredb +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-parallel +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-customize +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-complete +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/fetch-ebook-metadata +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre-smtp +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/calibre +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/lrfviewer +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-viewer +Installing binary: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/bin/ebook-edit +Installing calibre environment module: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/lib/python3.13/site-packages/init_calibre.py +Setting up command-line completion... +Installing zsh completion to: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/zsh/vendor-completions/_calibre +Installing bash completion to: /build/reproducible-path/calibre-8.5.0+ds/debian/tmp/usr/share/bash-completion/completions/ +Setting up desktop integration... + + +calibre successfully installed. You can start it by running the command calibre +* install took 30.0 seconds +rm debian/tmp/usr/share/calibre/calibre-portable.* +rm debian/tmp/usr/lib/python*/site-packages/init_calibre.py +rmdir debian/tmp/usr/share/desktop-directories +rm debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/update.py +rmdir debian/tmp/usr/lib/calibre/calibre/devices/mtp/unix/upstream/ +rm debian/tmp/usr/lib/calibre/tinycss/tests/*.py +rmdir debian/tmp/usr/lib/calibre/tinycss/tests/ +find debian/tmp/usr/lib/calibre/calibre/gui2 -name '*_ui.py' -print | xargs --no-run-if-empty sed --separate --file=debian/remove-ui-basepath.sed --in-place +make[3]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' +make[2]: 'install' is up to date. +make[2]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' +make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' + dh_install -O--buildsystem=makefile + dh_installdocs -O--buildsystem=makefile + dh_installchangelogs -O--buildsystem=makefile + debian/rules override_dh_installman +make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' +debian/install-manpages.sh +make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' + debian/rules override_dh_python3 +make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' +dh_python3 --no-package=calibre-bin --shebang=/usr/bin/python3.13 +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/lib/calibre/calibre/devices/cli.py +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-edit +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-viewer +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrfviewer +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-smtp +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/fetch-ebook-metadata +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-complete +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-customize +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-parallel +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibredb +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-debug +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrs2lrf +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/lrf2lrs +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/calibre-server +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/web2disk +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/markdown-calibre +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-polish +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-convert +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-meta +I: dh_python3 tools:114: replacing shebang in debian/calibre/usr/bin/ebook-device +make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' + dh_installsystemduser -O--buildsystem=makefile + dh_lintian -O--buildsystem=makefile + dh_icons -O--buildsystem=makefile + dh_perl -O--buildsystem=makefile + dh_link -O--buildsystem=makefile + dh_strip_nondeterminism -O--buildsystem=makefile + dh_compress -O--buildsystem=makefile + dh_fixperms -O--buildsystem=makefile + dh_missing -O--buildsystem=makefile + dh_dwz -a -O--buildsystem=makefile + dh_strip -a -O--buildsystem=makefile + dh_makeshlibs -a -O--buildsystem=makefile + dh_shlibdeps -a -O--buildsystem=makefile +dpkg-shlibdeps: warning: diversions involved - output may be incorrect + diversion by libc6 from: /lib/ld-linux-aarch64.so.1 +dpkg-shlibdeps: warning: diversions involved - output may be incorrect + diversion by libc6 to: /lib/ld-linux-aarch64.so.1.usr-is-merged + dh_installdeb -O--buildsystem=makefile + debian/rules override_dh_gencontrol +make[1]: Entering directory '/build/reproducible-path/calibre-8.5.0+ds' +dh_gencontrol -- -Vpyqt:Version=6.9.0-2 +make[1]: Leaving directory '/build/reproducible-path/calibre-8.5.0+ds' + dh_md5sums -O--buildsystem=makefile + dh_builddeb -O--buildsystem=makefile +dpkg-deb: building package 'calibre-bin' in '../calibre-bin_8.5.0+ds-1_arm64.deb'. +dpkg-deb: building package 'calibre' in '../calibre_8.5.0+ds-1_all.deb'. dpkg-deb: building package 'calibre-bin-dbgsym' in '../calibre-bin-dbgsym_8.5.0+ds-1_arm64.deb'. dpkg-genbuildinfo --build=binary -O../calibre_8.5.0+ds-1_arm64.buildinfo dpkg-genchanges --build=binary -O../calibre_8.5.0+ds-1_arm64.changes @@ -15983,12 +28888,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2271142/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1144975 and its subdirectories -I: Current time: Thu Aug 13 03:24:57 -12 2026 -I: pbuilder-time-stamp: 1786634697 +I: removing directory /srv/workspace/pbuilder/2271142 and its subdirectories +I: Current time: Fri Jul 11 23:19:49 +14 2025 +I: pbuilder-time-stamp: 1752225589