#!/bin/sh

set -ex

packages="alsa-lib alsaplayer apr apr-util aroarfw assimp aubio box2d bullet cal3d camitk casablanca cassiopee ccfits choreonoid clhep clipper coin3 coinor-cgl coinor-dylp coinor-flopc++ coinor-ipopt coinor-osi coinor-vol coinutils colobot ctpp2 cupt dancer-xml davix dballe dbus deal.ii dime dsdp dune-common dune-geometry dune-grid dune-grid-glue dune-istl dune-localfunctions dune-pdelab dune-typetree editorconfig-core elektra enet esajpip fastjet fflas-ffpack fish fosfat freecontact frei0r ftgl gavl gcc-4.4 gconfmm2.6 gecode geis gelemental geos gfal2 girara givaro globus-authz globus-authz-callout-error globus-callout globus-common globus-ftp-client globus-ftp-control globus-gass-cache globus-gass-copy globus-gass-transfer globus-gram-client globus-gram-job-manager-callout-error globus-gram-protocol globus-gridmap-callout-error globus-gsi-callback globus-gsi-cert-utils globus-gsi-credential globus-gsi-openssl-error globus-gsi-proxy-core globus-gsi-proxy-ssl globus-gsi-sysconfig globus-gss-assist globus-gssapi-error globus-gssapi-gsi globus-openssl-module globus-rsl globus-xio globus-xio-gridftp-driver globus-xio-gsi-driver gloox gmerlin-avdecoder gnash gnuradio gofigure2 graphite2 gridsite gsoap gtkspellmm gyoto hamlib hdf5 hepmc hwinfo hwloc icu id3lib3.8.3 iipimage inotify-tools irrlicht jack-audio-connection-kit jacktrip lensfun lhapdf libam7xxx libaqbanking libaria libassa libasyncns libbash libbluray libbuffy libburn libccrtp libcgicc libclaw libcommoncpp2 libcoverart libcrypto++ libdaemon libdatrie libdbusmenu-qt libdc1394-22 libdiscid libdshconfig libdvdnav libept libevhtp libexif libexosip2 libfakekey libfreenect libftdi libgadu libgig libgnomecanvasmm2.6 libgphoto2 libgpiv libgwenhywfar libhmsbeagle libisoburn libisofs libitpp liblo libmatchbox libmath++ libmediainfo libmimic libmongo-client libmpdclient libmsv libmtp libmusicbrainz3 libmusicbrainz5 libmwaw libnfo libnjb libopendbx libopenobex libphysfs libplayer libplist libquicktime librcc librcsb-core-wrapper librostlab librostlab-blast libshevek libsidplayfp libsmbios libsocketcan libstxxl libsysactivity libthai libtheora libupnp libusb-1.0 libvdpau libvpx libvsqlitepp libwibble libwnckmm libwps libxcb libxdg-basedir libxr libyaml libzen linbox litl lmdb log4c log4shib lv2-c++-tools lvtk lxc makehuman maloc meanwhile mffm-fftw mia mlpack mpqc mummy mygui nifticlib ninja-build nxcl obexftp ohcount omnievents opal open-vm-tools openafs opendnssec openigtlink openmprtl openni opensaml2 openscenegraph openvdb openvrml opus opusfile orthanc pcl png++ pocketsphinx polybori portaudio19 proj psocksxx ptlib pymilter python-odf qdjango qgis qof qpid-proton qsapecng qt-gstreamer qtiplot qwtplot3d qxmlrpc rapidsvn raul readosm rivet rsskit schroot scim scolasync shibboleth-sp2 sigx silly simbody simgrid sipxtapi siscone slv2 sombok soprano spandsp speech-tools speex stx-btree sumo tango thepeg tntdb ucommon uhd ui-gxmlcpp vamp-plugin-sdk vdk2 viennacl vpb-driver wfmath wreport xdotool xmltooling xz-utils yajl zipios++ zvbi"

cwd=`pwd`
echo -n > log

for p in $packages; do
	cd "$cwd"
	apt-get source --only-source $p
	cd $p-*
	# if no file named Doxyfile is found, continue
	find -type f | grep -v '/\.pc/' | grep '/Doxyfile$' > /dev/null || continue
	# now change all found Doxyfile files
	find -type f | grep -v '/\.pc/' | grep '/Doxyfile$' | while read file; do
		if grep HTML_TIMESTAMP "$file" > /dev/null; then
			sed 's/HTML_TIMESTAMP\s\+=\s\+YES/HTML_TIMESTAMP = NO/' -i "$file"
		else
			echo HTML_TIMESTAMP = NO >> "$file"
		fi
	done
	EDITOR=/bin/true dpkg-source --commit . html_timestamp_no
	dpkg-buildpackage -S -us -uc
	cd ..
	rm -rf temp1 temp2
	mkdir temp1
	cd temp1
	if ! sbuild -d sid -A ../${p}_*.dsc; then
		echo $p: ftbfs >> log
		continue
	fi
	cd ..
	mkdir temp2
	cd temp2
	if ! sbuild -d sid -A ../${p}_*.dsc; then
		echo $p: ftbfs >> log
		continue
	fi
	cd ..
	if [ "x`cat temp1/*.buildinfo | md5sum`" = "x`cat temp2/*.buildinfo | md5sum`" ]; then
		echo $p: reproducible >> log
	else
		echo $p: unreproducible >> log
	fi
done
