[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#991272: marked as done (unblock: bible-kjv/4.34)



Your message dated Mon, 19 Jul 2021 19:37:12 +0000
with message-id <E1m5Z4i-00080C-5b@respighi.debian.org>
and subject line unblock bible-kjv
has caused the Debian Bug report #991272,
regarding unblock: bible-kjv/4.34
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
991272: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=991272
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@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 <matthew@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 <matthew@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)

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: