Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > e16d0c94ff2c9e93ba4eea60f7b68478 > files > 117

krb5-1.6.1-70.el5_9.2.src.rpm

#!/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