--- /dev/null
+#!/bin/sh
+
+# Based on Enrico's snippet for using pdflatex for building PDFs, except we're
+# switching to pregenerating the docs for the SRPM so that we don't get
+# different contents when we build on multiple build machines and architectures
+# (timestamps and IDs change, and even some of the compressed content looks
+# different). The filename and checksum are used to verify that the PDF always
+# matches the doc which was used to generate it, and we flag an error if that
+# isn't the case.
+
+create() {
+ pushd "$1" > /dev/null
+ touch "$2".ind
+ pdflatex "$2"
+ test ! -e "$2".idx || makeindex ${3:+-s "$3".ist} "$2".idx
+ pdflatex "$2"
+ pdflatex "$2"
+ sum=`sha1sum "$2".tex | sed 's,[[:blank:]].*,,g'`
+ sed -ri \
+ -e 's|^/ID \[<.{32}> <.{32}>\]|/ID [<'"$1/$2"'> <'"$sum"'>]|g' \
+ "$2".pdf
+ popd > /dev/null
+}
+
+check() {
+ pushd "$1" > /dev/null
+ sum=`sha1sum "$2".tex | sed 's, .*,,g'`
+ id=`sed -rn -e '/^\/ID \[<[^>]*> <[^>]*>\]/p' "$2".pdf`
+ filename=`echo "$id" | sed -r 's|^.*\[<([^>]*)> <([^>]*)>\].*|\1|g'`
+ checksum=`echo "$id" | sed -r 's|^.*\[<([^>]*)> <([^>]*)>\].*|\2|g'`
+ echo $filename
+ echo $checksum $sum
+ popd > /dev/null
+ test "$filename" = "$1/$2" && test "$checksum" = "$sum"
+}
+
+mode=$1
+case $mode in
+ create)
+ while read subdir doc style ; do
+ if ! create $subdir $doc $style ; then
+ exit 1
+ fi
+ done
+ ;;
+ check)
+ while read subdir doc style ; do
+ if ! check $subdir $doc $style ; then
+ exit 1
+ fi
+ done
+ ;;
+esac
+
+exit 0