Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package bible-kjv TL;DR: This fixes #991133 ("important"), a regression from buster. There are two parts to the fix, both small. unblock bible-kjv/4.34 Bug #991133 is that searching does not work ; this upload fixes that by making the build non-parallel again, and addressing a longstanding error that the concordance would be empty if built on a system without "bible" already installed. This bug is a regression from buster. The parallelism in the build system was introduced in 4.32 as a side-effect of moving to dh_auto_build (to make cross-building work); fixing that is straightforwardly a matter of specifying --no-parallel to the dh_auto_build invocation. The other fix is to use bible.rawtext as the source for the concordance building, rather than trying to invoke "bible" to output the entire text. This is a small adjustment to the makeconc.pl file (diff below). Neither of these bugs cause the package to fail to build, they rather result in a package built with an empty concordance, which means that all search attempts fail. Both fixes are necessary (e.g. if I build on my bullseye system with bible installed, I still need the --no-parallel fix). >From a user POV, the buggy version cannot search anything: bible(KJV) [Gen1:1]> ??hath Searching for 'hath'... not found. whereas a fixed version does: bible(KJV) [Gen1:1]> ??hath Searching for 'hath'... [1840 refs] This is quite a significant impact on usability, and the fix a very small diff, so I hope you can unblock this for bullseye, please :) [ aside: you can tell the fix is working from the buildd logs; if you look at a 4.32 buildd log and search for "Concordance data file", you see Concordance data file: Version: 02 Name: KJV Concordance Contents: 0 words Word list at file offset 100 Index at file offset 101 Data at file offset 103 NB the "0 words" - https://buildd.debian.org/status/fetch.php?pkg=bible-kjv&arch=amd64&ver=4.32&stamp=1613928140&raw=0 whereas in a fixed version, you see: Concordance data file: Version: 02 Name: KJV Concordance Contents: 12544 words Word list at file offset 100 Index at file offset 101823 Data at file offset 126913 NB the >0 words :) https://buildd.debian.org/status/fetch.php?pkg=bible-kjv&arch=amd64&ver=4.34&stamp=1626696782&raw=0 ] source debdiff: diff -Nru bible-kjv-4.32/debian/changelog bible-kjv-4.34/debian/changelog --- bible-kjv-4.32/debian/changelog 2021-02-21 16:05:00.000000000 +0000 +++ bible-kjv-4.34/debian/changelog 2021-07-19 12:36:43.000000000 +0100 @@ -1,3 +1,16 @@ +bible-kjv (4.34) unstable; urgency=medium + + * Check for error return value + + -- Matthew Vernon <matt...@debian.org> Mon, 19 Jul 2021 12:36:43 +0100 + +bible-kjv (4.33) unstable; urgency=medium + + * Make the build not run in parallel + * Use bible.rawtext to build concordance (Closes: #991133) + + -- Matthew Vernon <matt...@debian.org> Mon, 19 Jul 2021 12:10:28 +0100 + bible-kjv (4.32) unstable; urgency=medium * Patch from Helmut Grohne to fix FTCBFS: (Closes: #947616) diff -Nru bible-kjv-4.32/debian/rules bible-kjv-4.34/debian/rules --- bible-kjv-4.32/debian/rules 2021-02-21 16:05:00.000000000 +0000 +++ bible-kjv-4.34/debian/rules 2021-07-19 12:36:43.000000000 +0100 @@ -20,9 +20,9 @@ build: $(checkdir) - dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_build -- bible-index.c bible.data bible.data.conc 'LD=$$(CC)' + dpkg-architecture -a$(DEB_BUILD_ARCH) -f -c dh_auto_build --no-parallel -- bible-index.c bible.data bible.data.conc 'LD=$$(CC)' rm -f *.o - dh_auto_build -- bible 'LD=$$(CC)' + dh_auto_build --no-parallel -- bible 'LD=$$(CC)' cd debian && $(CC) -g -O2 -o randverse randverse.c touch build diff -Nru bible-kjv-4.32/makeconc.pl bible-kjv-4.34/makeconc.pl --- bible-kjv-4.32/makeconc.pl 2021-02-21 16:05:00.000000000 +0000 +++ bible-kjv-4.34/makeconc.pl 2021-07-19 12:36:43.000000000 +0100 @@ -18,6 +18,7 @@ # Received from Chris Eich, replaces "makeconcordance" script. # Made use of stopwords conditional. ############################################################################### +use IO::Handle # Putting . on PATH ensures that the bible program will be found. $ENV{'PATH'} =~ s/^:*/.:/; @@ -40,7 +41,8 @@ # Generate plain text file, one "record" (e.g. bible verse) per line. # Fill %lines and $count tables, which are keyed by words. -open(BIBLE, "$PROG -f gen1:1-rev99:99 |"); +open(BIBLE, "bible.rawtext"); +<BIBLE>; #discard the header line while (<BIBLE>) { s/^\S+\s+//; # Cut off the record reference that starts each line. tr/A-Z/a-z/; # Downcase. @@ -53,7 +55,7 @@ $lines{$word} .= " " . $.; } } -close(BIBLE); +die $! if BIBLE->error(); # Create raw concordance, listing the lines where each word occurs. -- System Information: Debian Release: 9.13 APT prefers oldstable APT policy: (500, 'oldstable') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-14-amd64 (SMP w/8 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init)