Package: ispell
Version: 3.1.20.0-4
Severity: serious
Tags: patch

pbuilder fails to build ispell in an unstable chroot on i386:

> + munchlist -v -l ../english/english.aff /usr/share/dict/british-english 
> english.0 english.1 british.0 british.1
> Collecting input.
> sort: invalid option -- 1
> Try `sort --help' for more information.
> tr: write error: Broken pipe
> tr: write error
> Finding flag marker.
> Generating roots and affixes.
> sort: invalid option -- 1
> Try `sort --help' for more information.
> Expanding dictionary into EXPANDEDPAIRS.
> sort: open failed: +1: No such file or directory
> Creating list of legal roots/flags.
> sort: invalid option -- 1
> Try `sort --help' for more information.
> Creating list of flags that participate in cross-products.
> sort: invalid option -- 1
> Try `sort --help' for more information.
> Eliminating non-optimal affixes.
> sort: invalid option -- 2
> Try `sort --help' for more information.
> sort: invalid option -- 2
> Try `sort --help' for more information.
> sort: invalid option -- 1
> Try `sort --help' for more information.
> Generating output word list.
> sort: invalid option -- 1
> Try `sort --help' for more information.
> test -s english.med+ \
>   ||  (echo 'error: zero-length dictionary generated'; \
>     rm -f english.med+; exit 1)
> error: zero-length dictionary generated

The attached patch makes it use -k instead, which fixes these
problems.

-- 
Matt
diff -u ispell-3.1.20.0/munchlist.X ispell-3.1.20.0/munchlist.X
--- ispell-3.1.20.0/munchlist.X
+++ ispell-3.1.20.0/munchlist.X
@@ -357,7 +357,7 @@
     cat "$@" | ispell "$wchars" -e1 -d $FAKEHASH -p /dev/null | tr " " '
 '
 fi \
-  | sort $SORTTMP -u +0f -1 +0 \
+  | sort $SORTTMP -u -k1f,2 -k1 \
   | $COMBINE $icflags $langtabs \
   | sort $SORTTMP -u > $EXPANDEDINPUT
 #
@@ -417,7 +417,7 @@
 ispell "$wchars" -c -W0 -d $FAKEHASH -p /dev/null < $STRIPPEDINPUT \
   | tr " " '
 ' \
-  | egrep "$flagmarker" | sort $SORTTMP -u "-t$flagmarker" +0 -1 +1 \
+  | egrep "$flagmarker" | sort $SORTTMP -u "-t$flagmarker" -k1,2 -k2 \
   | $JOIN $SIGNED "-t$flagmarker" - $EXPANDEDINPUT > $CRUNCHEDINPUT
 #
 # We now have a list of legal roots, and of affixes that apply to the
@@ -443,7 +443,7 @@
 #
 $verbose  &&  echo 'Expanding dictionary into EXPANDEDPAIRS.' 1>&2
 ispell "$wchars" -e3 -d $FAKEHASH -p /dev/null < $CRUNCHEDINPUT \
-  | sort $SORTTMP +1 > $EXPANDEDPAIRS
+  | sort $SORTTMP -k2 > $EXPANDEDPAIRS
 #
 # Now we want to extract the lines in EXPANDEDPAIRS in which the second field
 # is *not* listed in the original dictionary EXPANDEDINPUT;  these illegal
@@ -471,7 +471,7 @@
   | (sed -e 's; .*$;;' ; /bin/rm -f $JOINEDPAIRS $EXPANDEDPAIRS) \
   | uniq \
   | (comm -13 - $CRUNCHEDINPUT ; /bin/rm -f $CRUNCHEDINPUT) \
-  | sort $SORTTMP -u "-t$flagmarker" +0f -1 +0 \
+  | sort $SORTTMP -u "-t$flagmarker" -k1f,2 -k1 \
   | $COMBINE $langtabs > $LEGALFLAGLIST
 
 #
@@ -501,7 +501,7 @@
   | sort $SORTTMP \
   | uniq -c \
   | tr '       ' ' ' \
-  | sort $SORTTMP +0rn -1 +2 > $PRODUCTLIST
+  | sort $SORTTMP -k1rn,2 -k3 > $PRODUCTLIST
 
 if [ `egrep ' p ' $PRODUCTLIST | wc -l` -gt 0 \
   -a `egrep ' s ' $PRODUCTLIST | wc -l` -gt 0 ]
@@ -616,7 +616,7 @@
        #
        $verbose  &&  echo "Creating cross expansions (pass $dbnum)." 1>&2
        ispell "$wchars" -e3 -d $FAKEHASH -p /dev/null < $CROSSROOTS \
-         | sort $SORTTMP +1 > $CROSSEXPANDED
+         | sort $SORTTMP -k2 > $CROSSEXPANDED
        #
        # Now we join CROSSEXPANDED against EXPANDEDINPUT to produce
        # CROSSPAIRS, and then comm that against CROSSEXPANDED to
@@ -686,7 +686,7 @@
              D
              }' \
          | comm -23 - $ILLEGALCOMBOS \
-         | sort $SORTTMP -u "-t$flagmarker" +0f -1 +0 \
+         | sort $SORTTMP -u "-t$flagmarker" -k1f,2 -k1 \
          | $COMBINE $langtabs > $CROSSROOTS
        mv $CROSSROOTS $LEGALFLAGLIST
        if [ "$debug" = yes ]
@@ -722,10 +722,10 @@
 #
 $verbose  &&  echo 'Eliminating non-optimal affixes.' 1>&2
 ispell "$wchars" -e4 -d $FAKEHASH -p /dev/null < $LEGALFLAGLIST \
-  | sort $SORTTMP +1 -2 +2rn -3 +0 -1 \
-  | sort $SORTTMP -um +1 -2 \
+  | sort $SORTTMP -k2,3 -k3rn,4 -k1,2 \
+  | sort $SORTTMP -um -k2,3 \
   | sed -e 's; .*$;;' \
-  | sort $SORTTMP -u "-t$flagmarker" +0f -1 +0 > $MINIMALAFFIXES
+  | sort $SORTTMP -u "-t$flagmarker" -k1f,2 -k1 > $MINIMALAFFIXES
 /bin/rm -f $LEGALFLAGLIST
 #
 # Now we're almost done.  MINIMALAFFIXES covers some (with luck, most)
@@ -753,10 +753,10 @@
     fi
     (ispell "$wchars" -l -d $FAKEHASH -p /dev/null < $STRIPPEDINPUT; \
        $COMBINE $langtabs < $MINIMALAFFIXES) \
-      | sort $SORTTMP "-t$flagmarker" -u +0f -1 +0
+      | sort $SORTTMP "-t$flagmarker" -u -k1f,1 -k1
 else
     # MINIMALAFFIXES is empty;  just produce a sorted version of STRIPPEDINPUT
-    sort $SORTTMP "-t$flagmarker" -u +0f -1 +0 $STRIPPEDINPUT
+    sort $SORTTMP "-t$flagmarker" -u -k1f,2 -k1 $STRIPPEDINPUT
 fi
 /bin/rm -rf ${TDIR}
 if [ "X$MUNCHMAIL" != X ]

Attachment: signature.asc
Description: Digital signature

Reply via email to